Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#3694 closed bug (fixed)

Xitami webserver won't run - network stack incompatibility

Reported by: haiqu Owned by: axeld
Priority: normal Milestone: R1
Component: Network & Internet/Stack Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Platform: x86

Description

~/code/OpenKernel/haiku> xitami Xitami Web Server v2.5b4 (c) 1991-2000 iMatix Xitami is free software and comes with ABSOLUTELY NO WARRANTY. You may redistribute this software under certain conditions; read the file LICENSE.TXT for details. Run 'xitami -h' for help.

2009/04/07 12:10:01: xilrwp: ready for LRWP connections on port 81 2009/04/07 12:10:01: smthttp: web server binding to address 127.0.0.1 2009/04/07 12:10:01: smthttp: web server binding to address 127.0.0.1 2009/04/07 12:10:01: smthttp: opening HTTP service on port 80... 2009/04/07 12:10:01: smthttp: HTTP service is now running 2009/04/07 12:10:01: smtftpc: opening FTP service on port 21... 2009/04/07 12:10:01: smtftpc: FTP service is now running 2009/04/07 12:10:01: xilrwp: error on socket: Protocol option not available 2009/04/07 12:10:01: HTTP socket was closed: Protocol option not available 2009/04/07 12:10:01: smthttp: closing HTTP service on port 80 2009/04/07 12:10:01: smtftpc: closing FTP service on port 21

As can be seen from the above, Xitami exits immediately.

I have tried this with the BONE version on BeBits, and also with a complete rebuild under Haiku. Very few (minor) changes were required to get it to build, so code compatibility isn't the problem.

Note: I am the originator and maintainer of the Xitami BeOS build, and have worked for iMatix Coproration.

Attachments (1)

xitami.dump (48.6 KB ) - added by haiqu 16 years ago.
strace dump of Xitami webserver

Download all attachments as: .zip

Change History (10)

comment:1 by haiqu, 16 years ago

Addendum: I also tried starting at an offset of 5000, e.g. http is then on 5080, in case I was colliding with some other service or program. This gave the same results.

comment:2 by axeld, 16 years ago

Resolution: fixed
Status: newclosed

Fixed in hrev30032. As you can see from the error output, it exits because of a missing protocol option; "strace xitami" further reveals a getsockopt(..., 0x40000008, ...) which corresponds to SO_TYPE.

I haven't tried Xitami with the updated stack yet, so there might be other problems left (can't reboot right now).

comment:3 by haiqu, 16 years ago

Resolution: fixed
Status: closedreopened

Still exits immediately, and doing an strace this time reveals "Bad port ID".

comment:4 by axeld, 16 years ago

Just tested again, and it seems to work fine now, using the BONE version. Which version did you try?

And if you can still reproduce the problem with a clean build, can you also actually attach the strace output? At least I have no idea why it would actually use a port for anything.

comment:5 by haiqu, 16 years ago

I've tried the Bone version and the new build with the same result, and my source files are at hrev30034. Xitami uses port 81 as a "Long Running Web Service", the interface was written by Robin Dunn of Python fame. I'm attaching the dump you requested as a file, it's pretty long.

by haiqu, 16 years ago

Attachment: xitami.dump added

strace dump of Xitami webserver

comment:6 by axeld, 16 years ago

The strace is obviously not from hrev30032 or newer, at least SO_TYPE still generates the same error for you, while it runs fine here. Can you please make sure you've done everything right again?

comment:7 by haiqu, 16 years ago

Tracker's "About This System" shows hrev29872. It is possible that with the directory changes the old kernel is still being accessed ... I'll know soon enough, will do another 'svn up' and rebuild.

comment:8 by axeld, 16 years ago

Resolution: fixed
Status: reopenedclosed

You have to run Haiku's makebootable after updating, or else the old beos/ stuff will still be used. You can check this by a) deleting beos/ (this will render the system unbootable if the old boot loader is still installed), or b) use "uname -a" to see which kernel revision is running.

comment:9 by haiqu, 16 years ago

Of course! Even though I have the kernel being reinstalled in UserBuildConfig it won't work this time. Not only has the file moved, but zbeos is now called haiku_loader so the bootstrap info at sector zero won't be able to find it.

Thanks Axel, another mystery solved.

Note: See TracTickets for help on using tickets.