| View previous topic :: View next topic |
| Author |
Message |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Tue Nov 27, 2007 3:42 pm Post subject: [SOLVED] Eggdrop only connects with debug flag |
|
|
I have set up my eggdrop fully and successfully run it with ./eggdrop -m -n eggdrop.conf and have a userfile. But when I try to run it with just ./eggdrop I have it say:
| Code: |
[matt@localhost eggdrop]$ ./eggdrop
Eggdrop v1.6.18 (C) 1997 Robey Pointer (C) 2006 Eggheads
[08:29] --- Loading eggdrop v1.6.18 (Wed Nov 28 2007)
[08:29] Listening at telnet port 3333 (all).
[08:29] Module loaded: dns
[08:29] Module loaded: channels
[08:29] Module loaded: server
[08:29] Module loaded: ctcp
[08:29] Module loaded: irc
[08:29] Module loaded: notes (with lang support)
[08:29] Module loaded: console (with lang support)
[08:29] Module loaded: seen
[08:29] Module loaded: blowfish
[08:29] Module loaded: uptime
[08:29] RSS Syndication Script v0.4 (2007-02-08): Loaded.
[08:29] Userinfo TCL v1.07 loaded (URL BF GF IRL EMAIL DOB PHONE ICQ).
[08:29] use '.help userinfo' for commands.
[08:29] Userfile loaded, unpacking...
[08:29] === KnX: 1 channels, 3 users.
Launched into the background (pid: 21273)
[matt@localhost eggdrop]$
|
However, it never successfully connects or joins the channel. Also, nothing is recorded in the log file even after waiting over 30 minutes.
What is odd, however, is that when I run it with the debug flag "./eggdrop -n" it connects fine.
Any ideas?
Last edited by TwIZTeD on Wed Nov 28, 2007 1:12 am; edited 1 time in total |
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Tue Nov 27, 2007 5:19 pm Post subject: |
|
|
This would indicate that you've got some problems with threaded tcl-libraries.
Recently, as several linux-dists have switched to threaded tcllib-packages, there have been an issue where the "gluecode" to make your bot launch into background (with threaded tcl) either isn't implemented, or breaks for some other reason. One fix that has worked for others sofar, is to remove the deb/rpm/etc package, and install a non-threaded tcllibrary manually.
Do you still have the buildtree laying 'round? _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Tue Nov 27, 2007 5:51 pm Post subject: |
|
|
| Not sure what you mean by buildtree... but I downloaded the source for the latest TCL and installed it that way. Didn't use any rpm's or the like. I'm using Fedora 5 btw. |
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Tue Nov 27, 2007 5:58 pm Post subject: |
|
|
Basically, just the files where you compiled your eggdrop (not where you installed it). Mainly interrested in the config.h and config.log files generated by ./configure.
Also, when you compiled tcl (not eggdrop), did you build it with or without thread-support? Did you install it systemwide? Made sure Fedora did'nt sneak anything related to tcl onto your system while you did'nt look? _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Tue Nov 27, 2007 6:02 pm Post subject: |
|
|
Ok then, yes I still have the buildtree. I didn't specifically tell it to build with thread-support... so I'm going to guess no on that one. I do not believe it was a system wide install as it's located in /home/matt/eggdrop after the make install is run. How would you recommend I check on the TCL?
Pulled this from config.h
| Code: | /* Define for Tcl that has threads. */
/* #undef HAVE_TCL_THREADS */
|
And this from the log
| Code: |
configure:9648: checking for Tcl library
configure:9660: result: found /usr/local/lib/libtcl8.4.so
configure:9683: checking for Tcl header
configure:9694: result: found /usr/local/include/tcl.h
configure:9730: checking whether the Tcl system has changed
configure:9755: result: yes
configure:9773: checking for Tcl version
configure:9785: result: 8.4
configure:9797: checking for Tcl patch level
configure:9809: result: 8.4.16
configure:9871: checking for Tcl_Free in -ltcl8.4
configure:9901: gcc -pipe -o conftest -g -O2 -Wall conftest.c -ltcl8.4 -L/usr/local/lib -lm -lpthread -ldl -lnsl >&5
configure:9907: $? = 0
configure:9911: test -z
|| test ! -s conftest.err
configure:9914: $? = 0
configure:9917: test -s conftest
configure:9920: $? = 0
configure:9933: result: yes
configure:9966: checking for TclpFinalizeThreadData in -ltcl8.4
configure:9996: gcc -pipe -o conftest -g -O2 -Wall conftest.c -ltcl8.4 -L/usr/local/lib -lm -lpthread -ldl -lnsl >&5
/tmp/ccQTRFIB.o: In function `main':
/home/matt/eggdrop1.6.18/conftest.c:95: undefined reference to `TclpFinalizeThreadData'
collect2: ld returned 1 exit status
configure:10002: $? = 1
|
|
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Tue Nov 27, 2007 6:54 pm Post subject: |
|
|
'k, it seems ./configure did detect a system-wide tcllib installation (at /urs/local/ ) that was not threaded (lacking TclpFinalizeThreadData). This would be coherent with a manual system-installation of tcl.
Could you run this:
Also run this one:
| Code: | | rpm -qf /usr/local/lib/libtcl8.4.so |
It'll probably take a couple of minutes or so, but should list any and all rpm-packages containing tcl in it's name. Just to make sure yum or such did'nt sneak tcl in there... _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Tue Nov 27, 2007 7:41 pm Post subject: |
|
|
| Code: |
[matt@localhost eggdrop1.6.18]$ rpm -qa | grep tcl
tcl-8.4.12-4
[matt@localhost eggdrop1.6.18]$ rpm -qf /usr/local/lib/libtcl8.4.so
file /usr/local/lib/libtcl8.4.so is not owned by any package
|
Looks like a package manager did slip something in... |
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Tue Nov 27, 2007 7:45 pm Post subject: |
|
|
Yup, which means you've got two different versions of tcl on your system.
The configure-script found the one you compiled and installed, yet I'm quite confident that the compiler and the runtime loader uses the one from the rpm.
Could you also run this?
_________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Tue Nov 27, 2007 7:48 pm Post subject: |
|
|
| Code: |
[matt@localhost eggdrop1.6.18]$ ldd eggdrop
linux-gate.so.1 => (0x005e2000)
libtcl8.4.so => /usr/lib/libtcl8.4.so (0x475c6000)
libm.so.6 => /lib/libm.so.6 (0x4c96e000)
libdl.so.2 => /lib/libdl.so.2 (0x4c995000)
libnsl.so.1 => /lib/libnsl.so.1 (0x4d1a7000)
libc.so.6 => /lib/libc.so.6 (0x4c839000)
libpthread.so.0 => /lib/libpthread.so.0 (0x4cd05000)
/lib/ld-linux.so.2 (0x4c81c000)
|
|
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Tue Nov 27, 2007 8:08 pm Post subject: |
|
|
Confirmed then, your eggdrop is indeed linked to the library-files provided by the rpm, and not the ones you installed yourself. Since FC4, the rpm's hold thread-enabled tcllibraries, requiring special code to put your eggdrop in "background". Since the configure-script found, and used the other set of libraries (the ones you installed yourself), the neccesary code was not included into the eggdrop.
In this case, your two best options are:
1, uninstall the rpm-version of tcl on your system, and recompile your eggdrop.
2, remove the tcl-libraries you manually installed, and recompile your eggdrop. _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
rosc2112 Revered One

Joined: 19 Feb 2006 Posts: 1454 Location: Northeast Pennsylvania
|
Posted: Tue Nov 27, 2007 10:03 pm Post subject: |
|
|
| I don't understand why people are having probs with threaded versions, unless perhaps its when you do have threaded tcl libs and compiled eggdrop without thread support? I compiled both the libs and eggdrop with threads enabled, works fine. |
|
| Back to top |
|
 |
TwIZTeD Voice
Joined: 27 Nov 2007 Posts: 6
|
Posted: Wed Nov 28, 2007 1:12 am Post subject: |
|
|
Problem solved... Thank yall so much for the help... Steps taken:
Ran | Code: | | rpm -e tcl-8.4.12-4 |
Recompiled/installed TCL
Added to /etc/ld.so.conf file
Then, as root, ran the ldconfig program (technically had to use /sbin/ldconfig)
Removed the /home/user/eggdrop directory
Then reran, ./configure, make config, make, & make install on the eggdrop |
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Wed Nov 28, 2007 6:45 am Post subject: |
|
|
@TwIZTeD:
Textbook example!
@rosc:
All issues I've encountered has been on recent Fedora, Suse, etc using dist-provided packages for tcl, where they've suddenly decided to make their tcl-libraries threaded. Sofar, pinning this one down has been very difficult, as most users have been content in compiling the library manually and shown no further interrest in providing any information to figure this one out.
Sofar, the only conclusions I've come to is that there is something strange with the builds in Fedora 4-6, Suse, etc; or the user installed multiple libraries, causing a very confused configure-script.
The information gathered in this thread covers and exceeds any and all info I've gathered from users sofar.. _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
rosc2112 Revered One

Joined: 19 Feb 2006 Posts: 1454 Location: Northeast Pennsylvania
|
Posted: Wed Nov 28, 2007 7:20 pm Post subject: |
|
|
| Anyone able to conduct a bit of an experiment, using the fedora package tcl lib with threads enabled, if you enable threads in eggdrop's configure, does that then work? |
|
| Back to top |
|
 |
nml375 Revered One
Joined: 04 Aug 2006 Posts: 2857
|
Posted: Wed Nov 28, 2007 8:04 pm Post subject: |
|
|
Eggdrop has no speciffic toggle or setting to enable support for threads; the configure-script tries to locate the libtcl.so file, and tests wether it comes with the function "TclpFinalizeThreadData" - which should only be present in threaded libraries.
If the tcllibrary is considdered threaded, the HAVE_TCL_THREADS macro is defined in config.h, which results in some gluecode being included in bg.c (tries to place bot in background by using fork or other tricks), and informative messages added to chanprog.c and main.c...
There is one option to prevent the detection of threaded tcl, --disable-tcl-threads, however this would only be useful when a library is falsely detected as threaded. Using this option with a threaded library will cause your bot to break as described in the beginning of this topic. _________________ NML_375, idling at #eggdrop@IrcNET |
|
| Back to top |
|
 |
|