SYSTEM WARNING: 'date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.' in '/usr/share/mantis/www/core.php' line 264

0000528: pppcall fifo syncorinsation blocking issue - MantisBT
MantisBT - Endian Firewall
View Issue Details
0000528Endian FirewallNetwork related (VPN, uplinks)public2008-01-28 19:162008-02-02 07:28
peter-endian 
peter-endian 
normalblockhave not tried
closedfixed 
2.2-beta2 
2.2-beta32.2-beta3 
0000528: pppcall fifo syncorinsation blocking issue
assume pppcall has been started by the uplinks script and pppcall started pppd.

another process calls uplinks stop, which tears down the same uplink. The stop script kills the pppd process (TERM) and sends notifications to uplinksdaemon and pppcall (process A).
Since pppd has been terminated and should exit, it calls ip-down, which also sends notifications and writes to the fifo (process B).

In that moment it is not synchronized which process writes first to the pppcall fifo, therefore it happens that both processes (A and B) write to the fifo at the same time.

One process, let's say process A will successfully write to the fifo, which causes pppcall to exit.
after pppcall successfully get a notification message from the fifo it tries to destroy the fifo before exiting.
This will not work, because the fifo is open by process B, which tries to write to it.

Since pppcall exits there is no fifo reader and process B will wait infinitely during write.


Possible (?) solution: send the pppcall notification only if the PPID is that one of the pppd process.
No tags attached.
Issue History
2008-01-28 19:16peter-endianNew Issue
2008-01-28 19:16peter-endianStatusnew => assigned
2008-01-28 19:16peter-endianAssigned To => peter-endian
2008-01-28 19:17peter-endianSeverityminor => block
2008-01-28 19:17peter-endianTarget Version => 2.2-beta3
2008-01-30 15:17peter-endianStatusassigned => resolved
2008-01-30 15:17peter-endianFixed in Version => 2.2-beta3
2008-01-30 15:17peter-endianResolutionopen => fixed
2008-02-02 07:28raphael-endianStatusresolved => closed

There are no notes attached to this issue.