Opened 5 months ago

Last modified 3 weeks ago

#5509 new defect

race on I/O service/context destructor

Reported by: fdupont Owned by:
Priority: medium Milestone: Kea1.4-final
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

Description

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.

Subtickets

Change History (5)

comment:1 Changed 5 months ago by fdupont

1.4 low by 2018-01-18 conf call

comment:2 Changed 5 months ago by fdupont

  • Milestone changed from Kea-proposed to Kea1.4

comment:3 Changed 3 months ago by fdupont

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

comment:4 Changed 7 weeks ago by tomek

  • Milestone changed from Kea1.4 to Kea1.4-final

As discussed on 2018-04-26 call, moving low and some med priority tickets to 1.4-final.

comment:5 Changed 3 weeks ago by tomek

  • Priority changed from low to medium
Note: See TracTickets for help on using tickets.