Evergreen Version: All
OpenSRF Version: All
PostgreSQL Version: N/A
O/S Version: Ubuntu 18.04+, Debian Buster (10)+
The current directory was removed from @INC in Perl release 5.26.0: https://perldoc.perl.org/5.26.0/perldelta#Removal-of-the-current-directory-(%22.%22)-from-@INC
As a consequence, oils_ctl.sh is no longer able to start SIPServer without specifying PERL5LIB on the command line or in the file. Additionally, there is no feedback to the user that SIPServer failed to start. The usual message about starting SIPServer appears, the PID file is created, but no SIPServer processes are running if one checks. (The PID file must be cleaned up in order to successfully start SIPServer.)
Assuming the default location of /opt/SIPServer per the instructions, the following works on the command line:
PERL5LIB=/opt/SIPServer oils_ctl.sh -a start_sip
To avoid having to remember the above, a small addition to oils_ctl.sh also works. I suggest this method of fixing the issue. Branch to follow!
Here's a branch with a patch that we're using in production at CW MARS on our SIP servers that have been upgraded to Ubuntu 18.04:
https:/ /git.evergreen- ils.org/ ?p=working/ Evergreen. git;a=shortlog; h=refs/ heads/user/ dyrcona/ lp1899974- oils_ctl- sh-perl5lib
From the commit message:
To verify the bug:
1. Install OpenSRF, Evergreen, and SIPServer on an affected O/S. var/run/ oils_sip. pid
2. Start OpenSRF service.
3. Start SIPServer via oils_ctl.sh:
oils_ctl.sh -a start_sip
4. Notice the "Starting OILS SIP Server" message is printed with no
indication of failure.
5. Verify that the PID file exists: /openils/
6. Verify that no SIPServer processes are actually running:
pgrep -af SIPServer
The above should produce no output.
To test this patch:
1. Apply this patch and install oils_ctl.sh to /openils/bin/. var/run/ oils_sip. pid var/run/ oils_sip. pid
2. Assuming you have run the previous steps, delete the PID file:
rm /openils/
3. Start SIPServer via oils_ctl.sh:
oils_ctl.sh -a start_sip
4. Notice the "Starting OILS SIP Server" message is printed.
5. Verify that the PID file exists: /openils/
6. `pgrep -af SIPServer` should produce output.