Estamos executando o servidor kea DHCP com MySQL DB e hoje encontramos o seguinte erro e depois de pesquisar no Google todos dizendo que poderia ser um bug do MySQL, então queria ver se é realmente um bug ou problema de implementação.
MariaDB-server-10.2.15-1.el7.centos.x86_64 (cluster galera de 3 nós)
2020-03-07 01:59:16.484 INFO [kea-dhcp4.leases/29796] DHCP4_LEASE_ALLOC [hwtype=1 00:0c:29:ae:77:cb], cid=[no info], tid=0x80b9c710: lease 10.10.10.22 has been allocated
2020-03-07 02:04:29.625 ERROR [kea-dhcp4.alloc-engine/29796] ALLOC_ENGINE_V4_ALLOC_ERROR [hwtype=1 00:19:85:f0:1c:89], cid=[no info], tid=0xd7790768: error during attempt to allocat
e an IPv4 address: unable to execute for <UPDATE lease4 SET address = ?, hwaddr = ?, client_id = ?, valid_lifetime = ?, expire = ?, subnet_id = ?, fqdn_fwd = ?, fqdn_rev = ?, hostna
me = ?, state = ? WHERE address = ?>, reason: Incorrect datetime value: '2020-03-08 02:04:29' for column 'expire' at row 1 (error code 1292)
É provável que seja um problema com o horário de verão: nos EUA (e possivelmente em outros lugares), a hora entre 02:00 e 03:00 em 8 de março de 2020 não existe porque os relógios são adiantados uma hora às 02:00 às 03h00.
Use
TIMESTAMP
em vez deDATETIME
. Isso converte a hora do sistema em UTC para armazenamento e, em seguida, converte de volta ao buscar.