Opened 2 months ago

Last modified 7 days ago

#5509 new defect

race on I/O service/context destructor

Reported by: fdupont Owned by:
Priority: low Milestone: Kea1.4
Component: Unclassified Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no


I investigated about random crashes in http and agent unit tests. Even if they are not likely (I had to make the debugger to loop on them) they appears on multiple systems so signal a bug in our ASIO code.

It seems the issue is from ASIO acceptor sockets which are not closed when the I/O service/context is destroyed at its last reference drop.

I propose 2 actions:

  • add a note in guide style saying sockets must be closed, i.e., not rely on destruction of global objects to clean them, in particular for hook libraries.
  • modify existing code to follow that. IMHO 1.4 final low is the maximal milestone / priority this part should get.


Change History (3)

comment:1 Changed 8 weeks ago by fdupont

1.4 low by 2018-01-18 conf call

comment:2 Changed 8 weeks ago by fdupont

  • Milestone changed from Kea-proposed to Kea1.4

comment:3 Changed 7 days ago by fdupont

Can be an issue from the -DBOOST_ASIO_DISABLE_THREADS=1 set in and IMHO far to be consistent with current code (timer manager for instance use a thread?).

Note: See TracTickets for help on using tickets.