On 4/17/24 5:49 AM, Peter Davies wrote:
Hi Brendan,
   It is not possible to see any details from this logging.

You should check your haproxy configuration, Kea cannot continue processing
requests if it is unable to connect to the lease database.

I suggest that you temporarily enable Severity DEBUG and debuglevel 99 so you
can see requests and how Kea is processing them.

 As all your reservations are global, you should define
 "reservations-global": true,"
 the default is false.

 All pools are guarded by client classes. The client may not be associated with
 any of these classes.

/Peter


digging back into the database issue, i found the following messages in "journactl -lu kea-dhcp4":

   Oct 15 20:34:43 server1 systemd[1]: Started kea-dhcp4.service - Kea
   DHCPv4 Server.
   Oct 15 20:34:43 server1 kea-dhcp4[1930]: 2024-10-15 20:34:43.848
   INFO  [kea-dhcp4.dhcp4/1930.140675063382400] DHCP4_STARTING Kea
   DHCPv4 server version 2.4.0 (stable) starting
   Oct 16 03:24:44 server1 kea-dhcp4[1930]: 2024-10-16 03:24:44.303
   ERROR [kea-dhcp4.database/1930.140675063382400]
   DATABASE_MYSQL_FATAL_ERROR Unrecoverable MySQL error occurred:
   unable to execute for <SELECT  a.id,  a.object_type, a.object_id, 
   a.modification_type,  r.modification_ts,  r.id, r.log_message FROM
   dhcp4_audit AS a INNER JOIN dhcp4_audit_revision AS r   ON
   a.revision_id = r.id INNER JOIN dhcp4_server AS s  ON r.server_id =
   s.id WHERE (s.tag = ? OR s.id = 1) AND ((r.modification_ts, r.id) >
   (?, ?)) ORDER BY r.modification_ts, r.id>, reason: Lost connection
   to server during query (error code: 2013).
   Oct 16 03:24:44 server1 kea-dhcp4[1930]: 2024-10-16 03:24:44.303
   ERROR [kea-dhcp4.dhcp4/1930.140675063382400]
   DHCP4_CB_PERIODIC_FETCH_UPDATES_FAIL error on periodic attempt to
   fetch configuration updates from the configuration backend(s): fatal
   database error or connectivity lost
   Oct 16 03:24:44 server1 systemd[1]: kea-dhcp4.service: Main process
   exited, code=exited, status=1/FAILURE
   Oct 16 03:24:44 server1 systemd[1]: kea-dhcp4.service: Failed with
   result 'exit-code'.
   Oct 16 03:24:44 server1 systemd[1]: kea-dhcp4.service: Consumed
   14.206s CPU time.

there is a select statement in the logs that failed and killed the instance.  i took the select statement in the logs and ran it in a mariadb client, phpMyAdmin.  when i submitted the query, i got the following error info back:

   Error

   Static analysis:

   3 errors were found during analysis.

        Variable name was expected. (near "?" at position 261)
        Variable name was expected. (near "?" at position 310)
        Variable name was expected. (near "?" at position 313)

   SQL query: Copy Documentation

   SELECT a.id, a.object_type, a.object_id, a.modification_type,
   r.modification_ts, r.id, r.log_message FROM dhcp4_audit AS a INNER
   JOIN dhcp4_audit_revision AS r ON a.revision_id = r.id INNER JOIN
   dhcp4_server AS s ON r.server_id = s.id WHERE (s.tag = ? OR s.id =
   1) AND ((r.modification_ts, r.id) > (?, ?)) ORDER BY
   r.modification_ts, r.id LIMIT 0, 25

   MySQL said: Documentation
   #1064 - You have an error in your SQL syntax; check the manual that
   corresponds to your MariaDB server version for the right syntax to
   use near '? OR s.id = 1) AND ((r.modification_ts, r.id) > (?, ?))
   ORDER BY r.modificati...' at line 1

the problem is not my database or connectivity to it.  the issues is a malformed query, that uses question marks ( ? ) which seem to be invalid characters.  i logged into the database using the mysql command line client and issued the same query, to be sure the error was not related to something in phpMyAdmin, and i got the following error info back:

   MariaDB [kea]> SELECT  a.id,  a.object_type,  a.object_id,
   a.modification_type,  r.modification_ts,  r.id,   r.log_message FROM
   dhcp4_audit AS a INNER JOIN dhcp4_audit_revision AS r   ON
   a.revision_id = r.id INNER JOIN dhcp4_server AS s  ON r.server_id =
   s.id WHERE (s.tag = ? OR s.id = 1) AND ((r.modification_ts, r.id) >
   (?, ?)) ORDER BY r.modification_ts, r.id;
   ERROR 1064 (42000): You have an error in your SQL syntax; check the
   manual that corresponds to your MariaDB server version for the right
   syntax to use near '? OR s.id = 1) AND ((r.modification_ts, r.id) >
   (?, ?)) ORDER BY r.modificati...' at line 1

from the looks of things, there is a malformed query and the error causes the kea instance to fail.  is there a "dialect" issue with the way the db query is formulated/constructed in kea for mariadb vs postgresql?  i dont have a postgresql instance handy to test against.  given the ERROR, not WARNING, status of the log message, i would assume that the malformed query causes the resulting failure of the instance because kea cannot continue. how do i figure a way past these errors?

thanks,

brendan
-- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
Kea-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-users

Reply via email to