On Mon, Mar 17, 2025 at 11:08 AM robertlazarski <robertlazar...@gmail.com> wrote:
> Hi Bill, thanks for the help so far - see my comments inline. > > On Sun, Mar 2, 2025 at 10:30 AM Bill Blough <de...@blough.us.invalid> > wrote: > >> Hi Robert, >> >> On Sun, Mar 02, 2025 at 07:14:20AM -1000, robertlazarski wrote: >> > >> > The INSTALL doc is confusing as it says run ./configure as usual but it >> > isn't there without executing the script. >> >> I think the INSTALL doc is typically for the end user, so it expects >> building from a dist tarball, which would already have ./configure >> generated. But for development purposes, it's my understanding that >> it's best practice to not check ./configure (and other, generated build >> system files) into the repo. So when starting from a checkout rather >> than a dist tarball, it requires that autoconf, automake, etc. be run to >> get to a buildable state. >> >> Maybe we should also have an INSTALL.developers (or whatever). >> >> > Maybe a DEV file to compliment INSTALL- as there are bash scripts used a > lot it seems but even as someone like me who codes often in bash, I skipped > right over them. I am not there yet though, I still need to learn the > project better. > > I can run build.sh after the recent commit from Nandika. Seems like > build_for_dist.sh needs the same fix - I will commit that. > > > >> > Running "sh build_for_tests.sh" shows errors in the Makefile: >> > >> > /usr/bin/install: 'AUTHORS' and >> > '/home/robert/repos/axis-axis2-c-core/AUTHORS' are >> > the same file >> > make[2]: *** [Makefile:504: install-dataDATA] Error 1 >> > make[2]: Leaving directory '/home/robert/repos/axis-axis2-c-core' >> > make[1]: *** [Makefile:948: install-am] Error 2 >> > make[1]: Leaving directory '/home/robert/repos/axis-axis2-c-core' >> > make: *** [Makefile:636: install-recursive] Error 1 >> > >> >> That's strange. For what it's worth, I can do a brand new checkout, >> then run build_for_tests.sh, and it completes successfully with no >> errors, installing a complete binary distribution (with samples) into >> $src_dir/deploy. >> >> Since it looks like it's trying to install into the root of the source >> tree instead of the deploy subdir, I'm guessing there's an issue with how >> AXIS2C_HOME is getting set on your system, which is causing issues with >> the install prefix. It should all be set up in build_for_tests.sh, so >> you might start there. >> >> > I stopped using AXIS2C_HOME and now it is undefined. It definitely was > causing problems. As Nandika explained, the deploy dir is where the build > output goes by default. > > > In the end I manually edited the Makefile so "install" would complete - >> as >> > shown via diff, I need to find the right place to fix this: >> >> Since (as far as I can tell) the existing line should be correct, I >> think once you figure out the AXIS2C_HOME and/or prefix/destdir issue >> referenced above, then the diff, or any further/related fix, shouldn't >> be necessary. >> >> I'm happy to try to help you work through it, but as I said, it "works >> on my machine" so much of my help would probably answering questions or >> making suggestions based on the info you give me. >> >> > >> > Running "sh run-tests.sh" shows one error - an HTTP 500 error on >> "Service >> > not Found" which arguably could be a 404. The log dir shows: >> > >> > [Sun Mar 2 06:03:09 2025] [info] Service Not found. Endpoint >> reference is >> > : http >> > ://127.0.0.1:9090/axis2/services/echo/echo >> >> <snip> >> >> > >> > Then it fails here - about : >> > >> > AddressSanitizer: CHECK failed: sanitizer_thread_arg_retval.cpp:57 >> > "((!t->second.deta >> > ched)) != (0)" (0x0, 0x0) (tid=335462) >> >> I suspect this is related to install issue above. The installed >> file isn't where the test server is expecting it, so when it tries to >> load it, there's a null pointer dereferece. (There are a lot of >> functions and code paths that lack null pointer checks - which is >> something I wanted to improve at some point) >> >> If I do run_tests.sh, then all tests pass. However, I can duplicate >> what you're seeing by renaming deploy/services/echo to something else. >> So I think sorting out the install function will fix this, too. >> >> >> >> > >> > ./configure --enable-json >> > >> > Returns this error. Seems like you applied the patch to support JSON >> back >> > in 2013. >> > >> > https://issues.apache.org/jira/browse/AXIS2C-1645 >> > >> > Is there some Ubuntu package I need to install? Simply "json" not found >> > isn't clear to me. I see json.h in a couple places. I tried "apt >> > install libjson-c-dev" >> > from Ubuntu 22.04 since it also has json_object but it didn't help. >> > >> > checking for json... no >> > configure: error: Package requirements (json) were not met: >> > >> > Package 'json', required by 'virtual:world', not found >> >> According to this comment >> https://issues.apache.org/jira/browse/AXIS2C-1645?focusedCommentId=13758315&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13758315 >> it sounds like libjson-c-dev is the correct package, but it looks like >> the references to library references to "json" still need to be replaced >> with >> "json-c". >> >> In doing that, I got configure to succeed, but then got compiler errors. >> It looks like json-c needs C99 or newer. So I added --std=c99 when JSON >> is >> enabled, and was able to get a clean compile. I haven't done any >> testing. (side note: maybe we should make the whole project require c99 >> for the 2.0 release, not just when JSON is enabled). >> >> I've attached the patch with my changes. >> >> Best regards, >> Bill >> >> > The patch to fix json support helped a lot, thanks! I think I am going to > commit it. > > I see what appears to be an obvious problem to in the json test code when > adding --enable-json=yes to build_for_tests.sh > , am I reading this correctly that it should be m_env instead of env? It > compiles after making that change. > > test_http_transport.cc: In member function ‘virtual void TestHTTPTranspo > rt_test_json_Test::TestBody()’: > test_http_transport.cc:368:20: error: ‘env’ was not declared in this sco > pe; did you mean ‘m_env’? > 368 | AXIS2_FREE(env->allocator, xml_str); > > Are you able to run build_for_tests.sh ? I get the error below. I'd like > to see the JSON test complete as referenced above, but it seems like this > error happens before that. > > > [ OK ] TestHTTPTransport.test_url (0 ms) > [ RUN ] TestHTTPTransport.test_http_client > AddressSanitizer: CHECK failed: sanitizer_thread_arg_retval.cpp:57 > "((!t->second.detached) > ) != (0)" (0x0, 0x0) (tid=304564) > #0 0x70c61fd08a47 in CheckUnwind > ../../../../src/libsanitizer/asan/asan_rtl.cpp:69 > > With or without setting export AXIS2C_HOME to the deploy dir seemed to > help. > > On that last error - I meant to say it was on run-tests.sh and I am asking if that runs ok or it is a problem with my environment somehow, > >