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.

Reply via email to