View Issue Details

IDProjectCategoryView StatusLast Update
0002271unrealdocumentationpublic2005-01-11 01:00
Reporterblotter45 Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionopen 
Product Version3.2.2 
Summary0002271: zlib causing crashes after a fresh install of unreal (latest cvs)
DescriptionHey guys.. I have one redhat box with zlib 1.1.3, but the problem is, when I compile unreal cvs with zlib support, it is also finding 1.1.4 libraries (I can only find one zlib.h file at /usr/include, and its for zlib 1.1.3).. I have no idea where unreal keeps finding the 1.1.4 libraries.. During ./Config, unreal correctly reports finding zlib in /usr.. Then when I start unreal:

[ircd@trax urhub]$ ./unreal start
Starting UnrealIRCd
[!!!] Zlib version mismatch: compiled for '1.1.4', library is '1.1.3'
[!!!] Header<->library mismatches can make UnrealIRCd *CRASH*! Make sure you don't have multiple versions of openssl or zlib installed (eg: one in /usr and one in /usr/local). And, if you recently upgraded them, be sure to recompile Unreal.
 _ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
 \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
                           v3.2.2cvs20050105
                     using TRE TRE 0.7.2 (GPL)
                     using OpenSSL 0.9.7d 17 Mar 2004
                     using zlib 1.1.3

* Loading IRCd configuration ..
* Configuration loaded without any problems ..
* Loading tunefile..
* Initializing SSL.
* Dynamic configuration initialized .. booting IRCd.
---------------------------------------------------------------------

the ircd starts, but is very unstable.. it crashes randomly, and also makes the leafs crash that are connected to it.. I run unreal 3.2 final on this same box, and it compiles and runs with no issues at all.. and the box admin has not made any recent changes to zlib (I don't have root)..

any ideas why unreal 3.2 final works fine, but the latest cvs doesn't on the box?

3rd party modules

Activities

syzop

2005-01-10 13:52

administrator   ~0008755

> [!!!] Zlib version mismatch: compiled for '1.1.4', library is '1.1.3'
compiled for = the header file version
library = the runtime version (the .so)
So you might well be correct that the zlib.h is 1.1.4 (and indeed, this shows that is true), but the runtime library it uses is 1.1.4.. So: "ls -al /usr/lib/libz*" will probably show that (and else try /usr/local/lib or even locate libz.so etc :P).

> and also makes the leafs crash that are connected to it
Hm, it shouldn't do that ;). Do you have a gdb backtrace of the crash of that leaf? :P

> I run unreal 3.2 final on this same box, and it compiles and runs with no issues at all..
'compiles' or 'compiled'? (so now, or some time ago?) In either case, 3.2 didn't have this check so it wouldn't give you the warning :P.

Of course, I cannot confirm that all these crashes were caused by incorrect zlib versions, but that should of course be fixed. If you then still crash with 3.2.2 or CVS, then show us the gdb backtrace (see 'Main' for instructions).

blotter45

2005-01-10 14:59

reporter   ~0008758

thanks so much for your help syzop!! I searched around for libz* files and found that there was indeed another copy of zlib installed in /usr/local (thats where 1.1.4 was).. So I guess I need to get the box admin to remove the older 1.1.3 version..

Is there any way at all for me to get around this problem, if I can't find the box admin right away? I have already tried to do my own install of the newest zlib in my home directory, and then tell unreal that zlib is in there during Config (home/meme/zlib), but unreal still finds the other zlib versions in /usr and /usr/local and gives warnings about that during startup.. Is there a way to tell unreal to ONLY look in my home directory for zlib, and to ignore the other versions found in /usr and /usr/local?

syzop

2005-01-10 15:20

administrator   ~0008759

Yeah, you can try this:
export LD_LIBRARY_PATH=/path/to/your/libdir
And then run ./unreal start

aquanight

2005-01-10 21:32

reporter   ~0008762

Last edited: 2005-01-10 21:33

Isn't there a question in ./Config, "where are the zlib files" or something like that? Could always make use of that ... :P

*edit* annoying typo thingy

syzop

2005-01-10 23:34

administrator   ~0008763

Last edited: 2005-01-10 23:36

No aquanight, that's not how it works.. .so's are loaded by the dynamic loader (so at runtime). It's not too different than windows really, in windows you can't specify the location of the dll it should use for loading either at compile-time (AFAIK - talking about dependency stuff here of course, not manually opening a .dll in an exe), it will use the dll search rules (like current dir first, then path etc).

Obviously what you said does work for static libs, but not for .so's :p.

Or did you mean he should say /usr/local ? Dunnow if that will work, sometimes for some reason it takes the other .h... Having same .h files in /usr/include and /usr/local/include is just a real mess :p

aquanight

2005-01-11 00:15

reporter   ~0008764

I dunno... I just know at some point in ./Config you say yes to enable ziplinks and then it asks if you know where zlib is or something like that. Usually I just hit enter and let it figure it out (since that *usually* works better) :P , but ............

(@Windows thingy: I wasn't even thinking of shared libraries for some reason. Maybe for some reason, I don't think of .sos in *nix the same way I think of .dlls in Win32 (as just being a blob of functions that can be pulled from a single copy, instead of having X000 binaries statically linked with that same blob). Maybe I should :P .)

And as for /usr/local thingy, well I was thinking maybe he could set up a little tree inside his unreal folder with the necessary folders containing symlinks/hardlinks to the right files? Like cd ~/unreal && mkdir zlibstuff && cd zlibstuff && mkdir bin && mkdir include && mkdir whatever-else-might-be-needed && ln [-s] whatever

syzop

2005-01-11 01:00

administrator   ~0008765

:)

Btw, I think this can be closed :p

Issue History

Date Modified Username Field Change
2005-01-10 12:41 blotter45 New Issue
2005-01-10 13:52 syzop Note Added: 0008755
2005-01-10 14:59 blotter45 Note Added: 0008758
2005-01-10 15:20 syzop Note Added: 0008759
2005-01-10 21:32 aquanight Note Added: 0008762
2005-01-10 21:33 aquanight Note Edited: 0008762
2005-01-10 23:34 syzop Note Added: 0008763
2005-01-10 23:36 syzop Note Edited: 0008763
2005-01-11 00:15 aquanight Note Added: 0008764
2005-01-11 01:00 syzop Status new => closed
2005-01-11 01:00 syzop Note Added: 0008765