Subject: | Net::LDAP::Constant and fork() are uncompatible |
Net::LDAP::Constant uses __DATA__ section to store constant name-value
pair and parses it on import. This leads to unexpected errors when
fork() occurs between Net::LDAP::Constant require and import.
Test case:
$ perl -we 'require Net::LDAP::Constant; fork; require
Net::LDAP::Intermediate;'
"LDAP_SYNC_INFO" is not exported by the Net::LDAP::Constant module at
/usr/local/lib/perl5/site_perl/5.10.0/Net/LDAP/Intermediate.pm line 10
Can't continue after import errors at
/usr/local/lib/perl5/site_perl/5.10.0/Net/LDAP/Intermediate.pm line 10
BEGIN failed--compilation aborted at
/usr/local/lib/perl5/site_perl/5.10.0/Net/LDAP/Intermediate.pm line 12,
<DATA> line 122.
Compilation failed in require at -e line 1, <DATA> line 122.
P.S. I marked this bug as Critical because it affects on (pre)forked
web-servers.