Pretty sure this was fixed yesterday. Can you confirm?

Revision: 32250

Author:   rjongbloed
Date:     2014-06-28 04:55:01 +0000 (Sat, 28 Jun 2014)
Log Message:
Changes to fix use of factory classes with GNU compiler, preventing multiple registrations of worker classes when loading .so files that also includes the ptlib or opal .so files.

Robert Jongbloed
OPAL/OpenH323/PTLib Architect and Co-founder.
Commercial support at

Robert Jongbloed
Requestec, Inc
On 28/06/2014 6:54 PM, Víctor M. Jáquez L. wrote:

Finally I have found some time to experiment with lacaille (svn HEAD), but I
ran across with an assertion when trying to run openphone, the optimized

If I run the one with debug symbols, it works OK.

The problem seems to be in the registration of the pulseaudio plugin.

Any ideas?


Assertion fail: Factory Worker already registered, file /home/vjaquez/src/ptlib/include/ptlib/pfactory.h, line 390, Error=20

<A>bort, <C>ore dump, <I>gnore? c

Dumping core.

Program received signal SIGABRT, Aborted.
0x00007ffff22d37bb in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
37      ../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff22d37bb in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1  0x00007ffff5bdc65b in PAssertAction(int, char const*) [clone .isra.2] () from /home/vjaquez/gnome/lib/
#2  0x00007ffff5bdc7f8 in PAssertFunc(char const*) () from /home/vjaquez/gnome/lib/
#3  0x00007ffff5c26511 in PAssertFunc(char const*, int, char const*, char const*) () from /home/vjaquez/gnome/lib/
#4  0x00007fffe5da72f2 in PFactory<PProcessStartup, std::string>::Worker<PSSLInitialiser>::Worker (this=0x7ffff5f2b120 <PFactoryLoader::PSSLInitialiser_instance>, key="15PSSLInitialiser", singleton=true)
    at /home/vjaquez/src/ptlib/include/ptlib/pfactory.h:390
#5  0x00007fffe5da54f2 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /home/vjaquez/src/ptlib/src/ptclib/pssl.cxx:142
#6  0x00007fffe5da553f in _GLOBAL__sub_I_pssl.cxx(void) () at /home/vjaquez/src/ptlib/src/ptclib/pssl.cxx:2423
#7  0x00007ffff7deaa2a in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdb48, env=env@entry=0x7fffffffdb58) at dl-init.c:78
#8  0x00007ffff7deab13 in call_init (env=0x7fffffffdb58, argv=0x7fffffffdb48, argc=1, l=<optimized out>) at dl-init.c:36
#9  _dl_init (main_map=main_map@entry=0x7def70, argc=1, argv=0x7fffffffdb48, env=0x7fffffffdb58) at dl-init.c:126
#10 0x00007ffff7deec8a in dl_open_worker (a=a@entry=0x7fffffffca88) at dl-open.c:577
#11 0x00007ffff7dea8e4 in _dl_catch_error (objname=objname@entry=0x7fffffffca78, errstring=errstring@entry=0x7fffffffca80, mallocedp=mallocedp@entry=0x7fffffffca77, 
    operate=operate@entry=0x7ffff7dee9a0 <dl_open_worker>, args=args@entry=0x7fffffffca88) at dl-error.c:187
#12 0x00007ffff7dee46b in _dl_open (file=0x7debe0 "/home/vjaquez/gnome/lib/ptlib-2.14.2/device/sound/", mode=-2147483646, caller_dlopen=<optimized out>, nsid=-2, argc=1, argv=0x7fffffffdb48, 
    env=0x7fffffffdb58) at dl-open.c:661
#13 0x00007ffff46ef02b in dlopen_doit (a=a@entry=0x7fffffffcca0) at dlopen.c:66
#14 0x00007ffff7dea8e4 in _dl_catch_error (objname=0x7b4bd0, errstring=0x7b4bd8, mallocedp=0x7b4bc8, operate=0x7ffff46eefd0 <dlopen_doit>, args=0x7fffffffcca0) at dl-error.c:187
#15 0x00007ffff46ef5dd in _dlerror_run (operate=operate@entry=0x7ffff46eefd0 <dlopen_doit>, args=args@entry=0x7fffffffcca0) at dlerror.c:163
#16 0x00007ffff46ef0c1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#17 0x00007ffff5baf8aa in PDynaLink::Open(PString const&) () from /home/vjaquez/gnome/lib/
#18 0x00007ffff5bdf06c in PPluginManager::LoadPlugin(PString const&) () from /home/vjaquez/gnome/lib/
#19 0x00007ffff5bdfa55 in PPluginManager::LoadDirectory(PDirectory const&) () from /home/vjaquez/gnome/lib/
#20 0x00007ffff5bdf64a in PPluginManager::LoadDirectory(PDirectory const&) () from /home/vjaquez/gnome/lib/
#21 0x00007ffff5bdf64a in PPluginManager::LoadDirectory(PDirectory const&) () from /home/vjaquez/gnome/lib/
#22 0x00007ffff5bdfbe5 in PPluginManager::LoadDirectories() () from /home/vjaquez/gnome/lib/
#23 0x00007ffff5bdff9d in PluginLoaderStartup::OnStartup() () from /home/vjaquez/gnome/lib/
#24 0x00007ffff5c06475 in PProcess::Startup() () from /home/vjaquez/gnome/lib/
#25 0x00007ffff5c06834 in PProcess::PProcess(char const*, char const*, unsigned int, unsigned int, PProcess::CodeStatus, unsigned int, bool, bool) () from /home/vjaquez/gnome/lib/
#26 0x000000000043ce16 in wxCreateApp() ()
#27 0x00007ffff603f971 in wxEntryStart(int&, wchar_t**) () from /usr/lib/x86_64-linux-gnu/
#28 0x00007ffff603fbcc in wxInitialize(int, wchar_t**) () from /usr/lib/x86_64-linux-gnu/
#29 0x00007ffff603fc18 in wxEntry(int&, wchar_t**) () from /usr/lib/x86_64-linux-gnu/
#30 0x0000000000435b98 in main ()

Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
Opalvoip-devel mailing list