SID-00332: Configure errors w/TWiki 4.3.1/Solaris 10/mod_perl/2.0.4
| Status: |
Unanswered |
TWiki version: |
4.3.1 |
Perl version: |
5.8.9 |
| Category: |
CategoryInstallation |
Server OS: |
Solaris 10 |
Last update: |
16 years ago |
apache error_log shows the following when starting up (this is what I expected): [Sun May 24 18:51:25 2009] [notice] Apache/2.2.11 (Unix) mod_perl/2.0.4 Perl/v5.8.9 configured -- resuming normal operations
When accessing configure via web browser, choosing "Open all options" there are no buttons so I can only access the environment variables read only. The apache error_log shows the following error: [Sun May 24 19:14:47 2009] [error] [client 10.0.0.37] ld.so.1: perl: fatal: relocation error: file /usr/local/perl5/5.8.9/lib/5.8.9/sun4-solaris-thread-multi/auto/Digest/SHA1/SHA1.so: symbol Perl_Tstack_sp_ptr: referenced symbol not found [Sun May 24 19:14:47 2009] [error] [client 10.0.0.37]
When I click on the "browse to the TWiki
WebHome" link, I get the "500 Internal Server Error" page and my apache log shows the following error:
[Sun May 24 19:16:47 2009] [error] [client 10.0.0.37] ld.so.1: perl: fatal: relocation error: file /usr/local/perl5/5.8.9/lib/5.8.9/sun4-solaris-thread-multi/auto/Unicode/String/String.so: symbol Perl_Gthr_key_ptr: referenced symbol not found, referer:
http://10.0.0.32:9614/twiki/bin/configure
[Sun May 24 19:16:47 2009] [error] [client 10.0.0.37] , referer:
http://10.0.0.32:9614/twiki/bin/configure
[Sun May 24 19:16:47 2009] [error] [client 10.0.0.37] Premature end of script headers: view, referer:
http://10.0.0.32:9614/twiki/bin/configure
I've installed Digest-MD5-2.38, Digest-SHA1-2.11, MIME-Base64-3.07 and Unicode-String-2.09, along w/the other required CPAN modules. If you need me to list them or you need more information, please let me know.
Please respond as soon as you can on this. I've been working very carefully on this for months, only to encounter this roadblock.
Any assistance is greatly appreciated. Thanks.
--
SergeiHaramundanis - 2009-05-24
Discussion and Answer
I've done some additional research on this and although I haven't found the solution to these "referenced symbol not found" errors, it seems this kind of thing can happen if a multi-threaded version of perl is trying to access libraries of a single-threaded version.
Although there are other versions of perl which exist on the same system which come pre-installed w/Solaris 10:
/usr/perl5/5.8.4
/usr/perl5/5.6.1
I have built 5.8.9 from source to /usr/local/perl5/5.8.9 and have been very explicit everywhere I can to ensure this version is used by TWiki, e.g. including the following:
userid twiki .profile:
export PATH=/usr/local/perl5/5.8.9/bin:/usr/local/bin:/usr/local/ssl/bin:/usr/bin:/usr/ccs/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/perl5/5.8.9/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/lib:/usr/ccs/lib:${LD_LIBRARY_PATH}
export
PERL5LIB=${PERL5LIB}:/usr/local/perl5/5.8.9/lib/5.8.9
apache httpd 2.2.11 httpd.conf:
SetEnv PERL5LIB /usr/local/perl5/5.8.9/lib/5.8.9
SetEnv PATH /usr/local/perl5/5.8.9/bin:/usr/local/bin:/usr/local/ssl/bin:/usr/bin:/usr/ccs/bin:/usr/bin
SetEnv LD_LIBRARY_PATH /usr/local/perl5/5.8.9/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/lib:/usr/ccs/lib
TWiki
LocalLib.cfg:
@localPerlLibPath
= ( '/usr/local/perl5/5.8.9/lib/5.8.9','/usr/local/perl5/5.8.9/lib/5.8.9/sun4-solaris-thread-multi' );
As per the Perl compile requirements for TWiki, here is how the version of Perl I am using is configured:
perl -V:use5005threads
use5005threads='undef';
perl -V:useithreads -V:usemultiplicity
useithreads='define'; usemultiplicity='define';
If there is something else I missed, please let me know.
Can someone please confirm that TWiki 4.3.1 works w/multi-threaded Perl 5.8.9 and mod_perl 2.0.4? Maybe it doesn't.
--
SergeiHaramundanis - 2009-05-25
I found one other thing that got me past the "Unicode/String/String.so: symbol Perl_Gthr_key_ptr: referenced symbol not found" error:
In the
SolarisInstallCookbookModPerl at
http://twiki.org/cgi-bin/view/Codev/SolarisInstallCookbookModPerl
it says to add the following to the apache httpd configuration (in my case twiki.conf):
<Directory "/export/home/twiki4/twiki-root/twiki/bin"> ... <FilesMatch "^(?!configure)[a-z.]+$">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlSendHeader On
PerlOptions +ParseHeaders </FilesMatch> ... </Directory>
I originally used
ApacheConfigGenerator at
http://twiki.org/cgi-bin/view/TWiki/ApacheConfigGenerator
which did not include this, but included the following instead:
<Directory "/export/home/twiki4/twiki-root/twiki/bin"> ... # Enable mod_perl for the bin scripts listed <IfModule mod_perl.c> <FilesMatch \"(attach|edit|manage|rename|save|upload|view|rest|.*auth).*\">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlSendHeader On
PerlOptions +ParseHeaders </FilesMatch> </IfModule> ... </Directory>
After commenting out the above from
ApacheConfigGenerator, adding the section from
SolarisInstallCookbookModPerl and bouncing apache, I was able to get to the TWiki
WebHome page without the "500 Internal Server Error" and the apache error_log no longer shows the "Unicode/String/String.so: symbol Perl_Gthr_key_ptr: referenced symbol not found" error.
The "Digest/SHA1/SHA1.so: symbol Perl_Tstack_sp_ptr: referenced symbol not found" still comes up and configure only shows ~30 read-only environment variables with no buttons and does not include CGI or CPAN module information. Regardless of this configuration change, throughout my troubleshooting of these issues configure has only shown this small sub-set of environment variables than what I understand it should show if it is working correctly.
Once at the TWiki
WebHome I tried registering and got the following error after filling out and submitting the form:
Error registering user
SergeiHaramundanis There has been a problem adding your user id to the Password system. Please contact
bog10222@bogatirPLEASENOSPAM.com. You have not been registered.
Here are some additional questions:
1. does apache httpd configuration for mod_perl require both of the above, just one or some combination of the two? 2. regarding the registration failure, since there are no errors in apache error_log, where else can I look?
--
SergeiHaramundanis - 2009-05-25
Well, it looks like I solved the issue with the registration as well. I had to modify the following definitions in ./lib/LocalSite.cfg:
$TWiki::cfg{SafeEnvPath} = '/usr/local/bin:/export/home/twiki4/twiki-root/twiki/bin:/usr/bin/';
$TWiki::cfg{RCS}{EgrepCmd} = '/usr/local/bin/egrep %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';
$TWiki::cfg{RCS}{FgrepCmd} = '/usr/local/bin/fgrep %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';
all instances of /usr/bin had to change to /usr/local/bin so the rcs and related binaries could be found.
I'm still having the same trouble with configure though.
--
SergeiHaramundanis - 2009-05-25
As I'm still unable to modify configuration parameters using configure, I've had to use the following workaround to establish my TWiki user as an administrator by manually adding it to the
TWikiAdminGroup:
login to unix userid twiki
cd ./twiki-root/twiki/data/Main
mv
TWikiAdminGroup.txt
TWikiAdminGroup.txt.orig
mv
TWikiAdminGroup.txt,v
TWikiAdminGroup.txt,v.orig
cp
TWikiAdminGroup.txt.orig
TWikiAdminGroup.txt
cp
TWikiAdminGroup.txt,v.orig
TWikiAdminGroup.txt,v
...edit
TWikiAdminGroup.txt to add TWiki user on the following line:
* Set GROUP = <TWiki_user>
I don't really like to do it this way but this is the only workaround I could find. Any other suggestions are welcome.
--
SergeiHaramundanis - 2009-06-02
If you use template login you can login as user "admin" with password you specified in configure.
--
PeterThoeny - 2009-06-02
Closing this question after more than 30 days of inactivity. Feel free to reopen if needed. Consider engaging one of the
TWiki consultants if you need timely help. We invite you to
get involved with the community, it is more likely you get community support if you support the open source project!
--
PeterThoeny - 2009-08-12
If you answer a question - or someone answered one of your questions - please remember to edit the page and set the status to answered. The status selector is below the edit box.