Summary: | ASTERISK-17416: [patch] Jabber and Gtalk Do Not Load After the Reboot | ||
Reporter: | Vladimir Mikhelson (vmikhelson) | Labels: | |
Date Opened: | 2011-02-16 10:47:37.000-0600 | Date Closed: | 2012-02-29 21:35:14.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_gtalk |
Versions: | 1.8.2 | Frequency of Occurrence | |
Related Issues: | |||
Environment: | Attachments: | ( 0) patch.diff | |
Description: | I have noticed my outgoing calls started to fail after the system reboot. Workaround: stop and re-start Asterisk. FreePBX 2.8.1.0 Asterisk 1.8.2.3 Analysis revealed the following messages in the "full" log. Should we preload libiksemel.so in modules.conf? ****** ADDITIONAL INFORMATION ****** [Feb 15 18:52:40] WARNING[2697] loader.c: Error loading module 'chan_jingle.so': libiksemel.so.3: cannot open shared object file: No such file or directory [Feb 15 18:52:40] WARNING[2697] loader.c: Module 'chan_jingle.so' could not be loaded. [Feb 15 18:52:40] WARNING[2697] loader.c: Error loading module 'chan_gtalk.so': libiksemel.so.3: cannot open shared object file: No such file or directory [Feb 15 18:52:40] WARNING[2697] loader.c: Module 'chan_gtalk.so' could not be loaded. [Feb 15 18:52:40] WARNING[2697] loader.c: Error loading module 'res_jabber.so': libiksemel.so.3: cannot open shared object file: No such file or directory [Feb 15 18:52:40] WARNING[2697] loader.c: Module 'res_jabber.so' could not be loaded. | ||
Comments: | By: Leif Madsen (lmadsen) 2011-02-16 16:04:11.000-0600 Well libiksemel.so isn't an Asterisk module. It is the library that chan_gtalk and chan_jabber use for communications. By: Vladimir Mikhelson (vmikhelson) 2011-02-16 17:21:21.000-0600 Good to know. Still looks like a timing issue to me. Is there any mechanism for Asterisk to check on dependencies at the load time? By: Leif Madsen (lmadsen) 2011-02-18 14:03:15.000-0600 Yes it's all built in and should already be doing that. By: Leif Madsen (lmadsen) 2011-02-18 14:04:01.000-0600 I'm acknowledging this just so another developer can look at this when I import it. I'm not sure what to ask for, or if this is a bug, or something local. By: Vladimir Mikhelson (vmikhelson) 2011-03-06 18:48:15.000-0600 Verified all LIBIKSEMEL modules were located in /usr/local/lib [root@pbx lib]# ls -l total 1200 -rw-r--r-- 1 root root 180666 Jan 15 21:20 libiksemel.a -rwxr-xr-x 1 root root 813 Jan 15 21:20 libiksemel.la lrwxrwxrwx 1 root root 19 Jan 15 21:20 libiksemel.so -> libiksemel.so.3.1.1 lrwxrwxrwx 1 root root 19 Jan 15 21:20 libiksemel.so.3 -> libiksemel.so.3.1.1 -rwxr-xr-x 1 root root 131866 Jan 15 21:20 libiksemel.so.3.1.1 -rwxr-xr-x 1 root root 955 Feb 12 12:09 libmpg123.la lrwxrwxrwx 1 root root 19 Feb 12 12:09 libmpg123.so -> libmpg123.so.0.29.1 lrwxrwxrwx 1 root root 19 Feb 12 12:09 libmpg123.so.0 -> libmpg123.so.0.29.1 -rwxr-xr-x 1 root root 735581 Feb 12 12:09 libmpg123.so.0.29.1 -rw-r--r-- 1 root root 135496 Feb 27 00:46 libsrtp.a drwxr-xr-x 2 root root 4096 Feb 12 12:09 mpg123 drwxr-xr-x 2 root root 4096 Feb 12 12:09 pkgconfig [root@pbx lib]# Checked the PATH, discovered /usr/local/lib not being in the PATH [root@pbx lib]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin Modified /etc/profile to include /usr/local/lib in the Path manipulation as follows: # Path manipulation if [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/lib fi Rebooted, observed /usr/local/lib in the path: [root@pbx lib]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/lib:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin The problem did not go away, still jabber and gtalk were not loaded upon reboot. Verified that running "/etc/init.d/asterisk reload" produces the negative effect whereas running "amportal restart" fixes the issue. The last observation pretty much confirmed that the problem is rooted in the /etc/init.d/asterisk script. Compared the scripts. AMPORTAL: AMPASTERISKGROUP=asterisk ...... export LD_LIBRARY_PATH=/usr/local/lib /usr/sbin/safe_asterisk -U asterisk -G $AMPASTERISKGROUP ASTERISK: AST_SBIN=/usr/sbin # Full path to asterisk binary DAEMON=$AST_SBIN/asterisk # Full path to safe_asterisk script SAFE_ASTERISK=$AST_SBIN/safe_asterisk .......... if [ -f $SAFE_ASTERISK ] ; then DAEMON=$SAFE_ASTERISK fi if [ $AST_CONFIG ]; then ASTARGS="$ASTARGS -C $AST_CONFIG/asterisk.conf" elif [ $ALTCONF ]; then ASTARGS="$ASTARGS -C $ALTCONF" fi ...... daemon $DAEMON $ASTARGS Patched the ASTERISK script with "export LD_LIBRARY_PATH=/usr/local/lib" It worked. See the diff attached. By: Vladimir Mikhelson (vmikhelson) 2011-03-06 20:15:39.000-0600 Alternatively, /etc/ld.so.conf.d/libiksemel.conf can be created. libiksemel.conf /usr/local/lib Do not forget to run ldconfig to recreate the /etc/ld.so.cache. By: Dave Bowerman (dbowerman) 2012-02-29 21:35:14.118-0600 Not an Asterisk issue. |