-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
can't use higher than v1.11.1 #6
Comments
Hi, |
I'm afraid I don't. There is just this message in the event log, nothing else: (I'm afraid the GitHub system won't allow me to paste XML code here. But there really isn't any more than this:)
If I just change the path to use a v10 or v11 version (all downloads from this project), there is no error and the service runs fine. Regards PS: Only mod_authz_svn fails to load, not mod_dav_svn. Might that be some clue? |
The libaprutil-1.dll by @nono303 depends on expat.dll. The Apachehaus builds import xml.lib in libaprutil-1.dll. Moreover, the Apachehaus builds are vc15 and the releases in this repo are vs16 since release version 1.12.0. Just too many differences between the two. There is a tiny chance you may get things running by replacing the Apachehaus DLL's with the one from this repo. Start by replacing AH's libaprutil-1.dll by NONO's libaprutil-1.dll + expat.dll. Afterwards do the same with libapr-1.dll and libhttpd.dll. If Apache still runs fine after these replacements tou are lucky, but Apache might be unstable. |
Would the easier solution be to change my Apache build to something else? I noted that ApacheLounge is offering builds on VS16 - would you recommend that, or another build? |
Thanks @Jan-E to note the dependencies point as specified in https://github.com/nono303/win-svn/blob/master/README.md (and see https://www.apachelounge.com/viewtopic.php?p=38610#38610) |
The Apachelounge builds also use a libaprutil-1.dll without an external expat.dll, so that would not make a difference. @nono303's way of building apparently differs from that of both Apachehaus and Apachelounge. You could try it with the x64/vc15 builds by @nono303 |
I'm afraid I didn't understand your last: Currently, I'm using the ApacheHaus build, which is VC15. In that, I'm trying to load mod_dav_svn from @nono303 , also from its VC15 directory (@Jan-E your link.) This combination generates the error on versions v12 or v13, not on v11. Which Apache build should I use instead? Could you give a reference/link to that maybe? |
Hi @150d |
Hi, my apologies for the delay - this little pandemic thing messed up a lot of schedules... ;-) I'm afraid v14 gave me the same loading error the previous versions did:
Regards |
It may be a dependency (vc runtime, dll..) or an incompatibility with your httpd build... Look at event log if you have more detailed information |
The message I reported already comes from the event log. It's the only relevant message there during the time frame. :-( |
Could you try if the x64 build from https://ci.appveyor.com/project/Jan-E/svn-windows/builds/33232754/job/juthm7sefil8tx52/artifacts runs and does not have the error? |
Here is the x64 VC15 version https://ci.appveyor.com/project/Jan-E/svn-windows/builds/34506133/job/xle25lc3whecmdqg/artifacts It was built with and for the x64 VC15 Apache httpd 2.4.46 of Apachelounge. Thanks, @SteffenAL It ran the tests quite well. A lot of XFAILS are eXpected fails. Only two unexpected fails: |
Could you check with https://github.com/lucasg/Dependencies if they are some missing dll on your installation (with my build) for |
The plot thickens (that tip about "Dependencies" was gold!) I seem to have a problem with the first few DLLs: As it turns out, up until now they were loaded from some third-party directory (VisualSVN/bin) within the system path, not from Apache/bin or [svn-modules]/dep. From where should those DLLs load? I noticed they exist in apache/bin as well as mod_svn/dep. Regards |
|
Well, something is fishy here. I went back to v10 (working so far) to sort things out: PATH: VisualSVN/bin, NOT to Apache/bin PATH: remove VisualSVN/bin PATH: add Apache/bin My Apache directory is unmodified from distribution, so the files in there should be ok. Why do I still get this failures? |
Probably because the libapr*.dll's in this repo by @nono303 are not compatible with the libapr*.dll's in the httpd distributions. They depend on expat.dll, which is not there in the httpd distributions. Please try the mod_dav_svn.so in the zipfile on https://ci.appveyor.com/project/Jan-E/svn-windows/builds/34506133/job/xle25lc3whecmdqg/artifacts (in the modules map). |
Thanks @Jan-E , but I'm still not there. I'm testing with three versions now: v10: v14 (this repo): v14 (Jan-E): |
Put the libsvn_*.dll's from https://ci.appveyor.com/project/Jan-E/svn-windows/builds/34506133/job/xle25lc3whecmdqg/artifacts in apache/bin |
Thanks @Jan-E , but I don't want to do "drop-ins" of DLLs into the Apache directory if I can help it. With any future updates, I'd never hear the end of it. But I followed your idea the other way round: I removed apache/bin and similar from my PATH, so mod_authz_svn.so only includes DLLs from its own /bin and /bin/dep directories (as verified with "Dependencies"). With one exception: mod_authz_svn.so requires libhttpd.dll, which is not included in its /dep. Above, you already suggested using @nono303 's build of libhttpd.dll - but where can I find this? I also noted that mod_authz_svn.so requires libhttpd.dll, but mod_dav_svn.so does not. This could be the difference why the former doesn't load in my system, while the latter does. Regards |
Hi @150d |
IMHO, it is a really bad idea to load mod_authz_svn.so into Apache (which has its own libhttpd.dll) and then use another libhttpd.dll in the deps of mod_authz_svn.so. You cannot even be sure which one of those two mod_authz_svn.so will use when it uses a function in libhttps.dll. |
You’re fully right @Jan-E; the better is to have all released build with same version, compiler and deps without duplicate binaries on PATH... |
@nono303 That's great, thank you! I'm not sure it will really solve my problem, but it shouldn't hurt to include the DLL either, should it? (Or maybe put the DLL in a seperate, "optional" directory for now instead of including it in the release package? Who knows, maybe the duplicate DLL will cause problems for other users that are running fine now?) @Jan-E You're right of course, but I wouldn't be better off if I replaced the DLLs Apache ships with (e.g. libapr*.dll) either. And, to be frank, I don't know what else I can do. Just out of curiosity: What build of Apache are you all running? You must have one that doesn't have the conflicting DLLs. Earlier it was mentioned that ApacheLounge or ApacheHouse wouldn't make a difference, but I couldn't find any other "semi-official" builds. Are you all compiling Apache yourself? Regards |
For my part yes, with all deps |
Issues like this are exactly the reason why I am using the Apachelounge distribution while building https://ci.appveyor.com/project/Jan-E/svn-windows/builds/34506133/job/xle25lc3whecmdqg/artifacts |
Hi @150d |
No joy, I'm afraid: Even with the new libhttpd.dll, mod_authz_dav.so will not load. I've set my path in a way that all includes are fulfilled from the module's directories, not from Apache. Still nothing (while mod_dav_svn.so still loads even in v1.14.0, as before). I will try a different build of Apache next. Maybe this will clear it up.
Yes, I do indeed: I had no idea that you even could compile Apache in different ways with effects like that. This hint certainly helps to understand the issue. MfG |
@150d could you give me a zip link of your Apache v2.4.4 x64, VC15 ApacheHaus build to test on my side please? |
I do not even know if a 2.4.4 ApacheHaus build was ever made, especially in a VC15 version. Back then Gregg was building with VC9 and VC11: https://forum.apachehaus.com/index.php?topic=1211.0 Current ApacheHaus buillds are here: https://www.apachehaus.com/cgi-bin/download.plx |
See https://forum.apachehaus.com/index.php?topic=965.0 as well. |
Of course: I got the file httpd-2.4.41-o11c-x64-vc15-r2.zip from the page at https://www.apachehaus.com/cgi-bin/download.plx Just now, I've upgraded this to httpd-2.4.46-o11g-x64-vc15.zip with no changes in behaviour. (I'm not set on this build for any reason. I've tried to "play it safe" with the VC15 version, but I can try a VS16 version next.) Additionally, I'm running mod_authn_ntlm v1.0.7 Regards |
Here comes a part of the mystery…. OPENSSL_Applink Error for secure connections in dlls
Here is a (simplified) call stack of mod_dav_svn.so loading
the
I guess apachehaus doesn't patch httpd.exe with #include "openssl \ applink.c" unlike my homemade version, causing the error loading svn modules (requiring openssl in they own runtime context) @Jan-E : how do you manage this in apachelounge distribution and in your subversion build? |
Good catch about the applink error. AFAIK, @SteffenAL still uses In my Appveyor project, I am just using all the binaries of the ApacheLounge distro. Read the complete build log: https://ci.appveyor.com/project/Jan-E/svn-windows/builds/34506133/job/x1yxesv9q46hkdkd?fullLog=true Or clone my repo and run it yourself. Appveyor is free for Open Source projects. Just login with your github account. |
After digging into my call stack a bite more – in -vvv mode :( , I found that OPENSSL_Applink was not the root cause of the thread exiting but just... forgot to enable mod_dav in my test config ^^
@150d Could you do the same with your runtime context please and give me your feedback? |
It's working. I still don't quite understand it myself. The problem seems to depend on my particular system though. While working through your (@nono303 ) action list I did the following:
That's what I did and where I'm now. I need a break to sort all this out, repeat the steps to make sure I didn't leave anything out. A big apology for having both of you run around in circles all the time when the problem must have been my particular system after all! My best guess right now is that security software running on the system (that I can't disable or remove) must have messed with the system account. The rest were incompatibilities between different builds of DLLs after all, but the root cause must have been my system. Thank you for sticking with it! I really do appreciate it! Regards |
Wonderful if you were able to catch the root cause of the problem! Windows Rights management & security software rarely works well with httpd ;) |
Interesting. There must be an essential difference between the Apachelounge distro and the ApacheHaus distro. |
Surely ;) After doing my test #6 (comment) for the main httpd distributions (Apache Lounge, Apache Haus, WampServer, XAMPP, BitNami WAMP), all where successful with or without expat binary provided in package... |
Hi,
I'm trying to run SVN with Apache v2.4.4 (x64, VC15, ApacheHaus build) on Windows Server 2016. If I'm using the libraries from this project (VC15, x64) in version v1.11.1 or below, the service works fine.
But if I'm trying to load the modules of a current version (v1.12.x or v1.13.x), starting the service fails with the following error:
Cannot load [path]/mod_authz_svn.so into server: Die angegebene Prozedur wurde nicht gefunden.
Did something change between v11 and v12 that needs adjustment of the setup?
Regards
The text was updated successfully, but these errors were encountered: