[Fusioninventory-commit] [fusinv/fusioninventory-agent-task-network] c93a12: Revert "create threads before IO::Socket::SSL"
Gonéri Le Bouder
goneri at rulezlan.org
Mon Aug 27 13:36:11 UTC 2012
Branch: refs/heads/master
Home: https://github.com/fusinv/fusioninventory-agent-task-network
Commit: c93a12c3d008cddde906830154ba4f93bc473e1e
https://github.com/fusinv/fusioninventory-agent-task-network/commit/c93a12c3d008cddde906830154ba4f93bc473e1e
Author: Gonéri Le Bouder <goneri at rulezlan.org>
Date: 2012-08-27 (Mon, 27 Aug 2012)
Changed paths:
M lib/FusionInventory/Agent/Task/NetDiscovery.pm
Log Message:
-----------
Revert "create threads before IO::Socket::SSL"
This reverts commit 942406c89fd31ba106c9b220cb9c279467307df8.
I'm not sure this is the right fix:
- if I launch a netdiscovery without the daemon mode, I get
a Perl segfault when the last thread is destroyed
- if I launch a netdiscovery but without the initial inventory,
everything is ok
- if I launch a netdiscovery with the daemon mode every thing is
a right.
In both case, IO::Socket::SSL and Net::SSL are not loaded, so OpenSSL
is not the culprit.
So, I believe a Win32 lib is loaded during the Inventory and
DESTROY() is never called since it's in the main process.
When the NetDiscovery threads are finish, the DESTROY() functions are
called and I get a double free() on one of them.
A simple fix^W workaround would be to launch all the Task in a fork(),
at least on Windows.
see: #1781
More information about the Fusioninventory-commit
mailing list