[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