Issue Details (XML | Word | Printable)

Key: CORE-4788
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Alexander Peshkov
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Superclassic server hangs when receiving network packet

Created: 12/May/15 12:13 PM   Updated: 23/Sep/15 11:34 AM
Component/s: None
Affects Version/s: 2.5.4
Fix Version/s: 3.0 Beta 2, 2.5.5

Environment: posix

QA Status: Cannot be tested


 Description  « Hide
Listener thread finds active port in the list of known server ports and after it receives network packet on that port and processes it (that typically menas sends to worker thread). But port lock is not held between active port detection and receiving packet. Therefore under some circumstances port handle may get closed and have invalid handle value when receiving a packet. With poll() call to detect active port this leads to server (listener thread) hang in packet receive code.

An issue was initially noticed by IBPhoenix customers.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Alexander Peshkov added a comment - 12/May/15 12:24 PM
Listener thread requires serious rework in next version. Currently I just avoid hang in it with additional check.