htmladmin keeps segfaulting :
[Mon Feb 27 15:18:13 2012] [notice] [client 10.1.0.7] admserv_host_ip_check: ap_get_remote_host could not resolve 10.1.0.7, referer: http://10.1.0.6:7777/admin-serv/tasks/configuration/HTMLAdmin?op=framepaint [Mon Feb 27 15:18:13 2012] [error] [client 10.1.0.7] Premature end of script headers: htmladmin, referer: http://10.1.0.6:7777/admin-serv/tasks/configuration/HTMLAdmin?op=framepaint
This is an epel binary :
389-admin-1.1.27-1.el6.x86_64
I also don't het the resolver error, since the host is in DNS, and does resolve :
[root@shell admin-serv]# nslookup 10.1.0.7 ..... 7.0.1.10.in-addr.arpa name = rhevmgr.jdi.internal.
Any clues on how to solve this ? This is a test machine, so I can debug at will, and will be more than willing to het this issue out of the way.
Replying to [ticket:307 igmar]:
htmladmin keeps segfaulting : Any clues on how to solve this ? This is a test machine, so I can debug at will, and will be more than willing to het this issue out of the way.
Please do
debuginfo-install 389-admin 389-adminutil
See also http://directory.fedoraproject.org/wiki/FAQ#Debugging_Crashes for information about how to allow core dumps. I'm not sure where admin server puts the core files. After you reproduce the crash after enabling core files, do a
find /usr//dirsrv /var//dirsrv -name core*
to find the core dump file. Then you can
gdb /usr/lib64/dirsrv/cgi-bin/htmladmin /path/to/core.pid
to get a stack trace
backtrace from ubuntu htmladmin-backtrace.txt
I'm seeing the same (?) segfault on Ubuntu, running the current stable releases. Backtrace is attached.
Replying to [comment:2 tjaalton]:
Thanks! In your case, the problem is that your hostname begins with a digit:
host=0x6792f0 "389ds.tyrell"
This runs afoul of the server_status() function: if(!isdigit(host[0])) { err = PR_GetHostByName(host, buf, PR_NETDB_BUF_SIZE, &hent); if(err == PR_FAILURE) return -1; }
That is certainly a bug in our code - it is perfectly valid to have digits in a hostname. However, in the original report, it looks as though the hostname begins with "r" so I don't think that's the whole problem.
hehe, there is no segfault here anymore once I installed with a valid hostname :)
git patch file (master - adminserver) 0001-Trac-Ticket-307-htmladmin-keeps-segfaulting.patch
Fix Description: PR_GetHostByName was used to get PRHostEnt in htmladmin, but it was called only when the first character of host was not digit. The direct cause of the crash was the PRHostEnt variable to fill in in PR_GetHostByName was not initialized, thus if the hostname started with digit, the uninitialized, garbage address in the variable was accessed, which crashed htmladmin.
This patch removes the hostname check and replaces PR_GetHostByName with PR_GetAddrInfoByName to support IPv6 environment. Also, to support numerical address, PR_StringToNetAddr is added before trying PR_GetAddrInfoByName.
Another cgi statpingserv has the same coding style. It is being fixed, too.
Steps to verify: 1. Install DS with the admin server with setup-ds-admin.pl. 2. Replace serverHostName with the IP address. ldapmodify ... << EOM dn: cn=slapd-<ID>,cn=389 Directory Server,cn=Server Group,cn=<FRDN>,ou=<DOMAIN>,o=NetscapeRoot changetype: modify replace: serverHostName serverHostName: <IP_ADDRESS> 3. Go to the admin server URL on a browser 4. Click "389 Administration Express" and login to the admin server.
If the 389 Administration Express page is successfully displayed, the bug is verified.
Looks good -> ack
Reviewed by Mark (Thank you!!)
Pushed to master.
$ git merge trac307 Updating 00c2b18..26869af Fast-forward admserv/cgi-src40/htmladmin.c | 75 +++++++++++++++++++++------------ admserv/cgi-src40/statpingserv.c | 84 ++++++++++++++++++++------------------ 2 files changed, 92 insertions(+), 67 deletions(-)
$ git push Counting objects: 11, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.99 KiB, done. Total 6 (delta 5), reused 0 (delta 0) To ssh://git.fedorahosted.org/git/389/admin.git 00c2b18..26869af master -> master
I'm having a different issue, which is conformed by running the lates version from git :
[root@shell log]# hostname shell.c1.jdi.nl
It also doesn't seem to actually segfault, it doesn't give any output, hence the ISE. I've debugged the actual calling of the cgi-bin, and it is called as /usr/lib64/dirsrv/cgi-bin/htmladmin with no arguments. That gives from the commandline :
Content-type: text/html;charset=utf-8 <empty line>
I'm not a bit clueless, because i'm not familiar with how it's suppose to work. Suggestions welcome
Replying to [comment:11 igmar]:
It means the patch 0001-Trac-Ticket-307-htmladmin-keeps-segfaulting.patch made your htmladmin stop working?
What does this cl return? nslookup shell.c1.jdi.nl
It also doesn't seem to actually segfault, it doesn't give any output, hence the ISE. I've debugged the actual calling of the cgi-bin, and it is called as /usr/lib64/dirsrv/cgi-bin/htmladmin with no arguments. That gives from the commandline : Content-type: text/html;charset=utf-8 <empty line>
This is normal...
Could you give us some more input? . type of browser and its version . When you get the empty page? http://<adminhost>:<adminport>/ then click "389 Administration Express". Do you see login box? If yes, your login to the adminserver is successful? . Have you tried clearing the cache of the browser and restarting it? Sometimes, browser caches the old page...
Hello igmar,
Could there be any progress/findings?
Patched version works for me too (btw, 389-admin-1.1.28 is now in updates-testing/epel-testing - try it)
Noriko, was this issue fixed by commit changeset:4ec23c03450d45639282c173d2e095c4023876bb/389-admin Author: Noriko Hosoi nhosoi@totoro.sjc.redhat.com Date: Fri Mar 23 13:13:08 2012 -0700
If htmladmin fails to connect to the server, the cgi could crash. This patch checks the flag for the server status and avoids the unnecessary free.
If so, I have released 389-admin-1.1.29 with this patch - can we close this ticket?
Replying to [comment:16 rmeggins]:
Noriko, was this issue fixed by commit changeset:4ec23c03450d45639282c173d2e095c4023876bb/389-admin Author: Noriko Hosoi nhosoi@totoro.sjc.redhat.com Date: Fri Mar 23 13:13:08 2012 -0700 If htmladmin fails to connect to the server, the cgi could crash. This patch checks the flag for the server status and avoids the unnecessary free. If so, I have released 389-admin-1.1.29 with this patch - can we close this ticket?
Rich, I ran into this htmladmin crash problem when htmladmin fails to connect to the Configuration Directory Server (my case, it was down). Yes, this bug could be happening in the igmar's environment. But this patch only fixes the double free. The cgi htmladmin is still failing to connect to the server unless the root cause is fixed...
igmar,
If you still have a problem accessing 389 Administration Express, could you check one another thing on your browser? I'm assuming you are using Firefox.
Please open "about:config" and search "network.dns.disableIPv6". Is the value "false"? If so, please change it to "true" and restart your Firefox.
Since we don't hear any objections from the reporter, we are closing this ticket for now. Please reopen it if the problem is still with 389-admin-1.1.29.
Thanks!
originally targeted for 1.2.11.rc1, but actually in the 1.2.11.a1 release
Ticket has been cloned to Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=830350
Added initial screened field value.
Metadata Update from @nkinder: - Issue assigned to nhosoi - Issue set to the milestone: 1.2.11.a1
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/307
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: Fixed)
Login to comment on this ticket.