Buy commercial curl support from WolfSSL. We help you work
out your issues, debug your libcurl applications, use the API, port to new
platforms, add new features and more. With a team lead by the curl founder
himself.
Re: App fails when rebuilt with newer library, but only when MTU is small
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Dan Fandrich via curl-library <curl-library_at_lists.haxx.se>
Date: Thu, 29 Sep 2022 12:41:50 -0700
On Thu, Sep 29, 2022 at 01:58:23PM +0000, Mark Fanara via curl-library wrote:
> Recently the device vendor updated the OS image to Debian Buster.
The subject of this message doesn't match this line. If it's an OS upgrade that
happened, then it's much more than just a newer libcurl that's changed. In
effect, absolutely everything other than the hardware (and possibly your
application) has changed, including the OS, drivers, configuration files, libc,
libcurl as well as every other library in the system. Figuring out which of
those actually made things stop working is your challenge.
> After rebuilding the application, it is no longer able to push the data to
> the endpoint
How is it no longer able? What are the symptoms? Is it a client issue? Server
issue? What is failing and how?
> If I increase the MTU (bypass the wireless link), the push is completed.
Bypassing the wireless link sounds like it would cause a lot more changes than
just altering the MTU. How do you know that the MTU is the part that matters?
Have you tried lowering the MTU on the working networking transport to see if
it stops working in the same way?
> - Upgrading to newest libcurl is not feasible because of reported library dependencies. i.e. newer version is dependent upon newer version of libc which I am unable to update.
You can compile a recent libcurl very easily and link your application against
that. Even if you decide not to release it that way, it can give you valuable
data for testing. There have been 2481 bug fixes in curl since 7.68.0, after
all.
> Are there any known changes to libcurl (or other dependent libraries) that would be MTU sensitive?
There were 2503 bug fixes and 162 other changes between versions 7.38.0
and version 7.64.0. libcurl's dependencies are likely similarly changed. You
are welcome to check yourself if any of those are relevant in your case.
> Any suggestions on where to go from here?
I'd first figure out what exactly is causing the push to fail. Is the
application getting an error code? Is it getting a remote server failure code?
Is it timing out? That will help drive following steps. Next, enable libcurl
logging to see if something useful is coming out of that. It's probably also
worthwhile trying to run the old application (linked to the old libraries) on
the new system. Copy the binary and all the necessary libraries to a directory
on the new system and run the binary using LD_LIBRARY_PATH to point it to the
old libraries. This isn't failsafe, since the old libraries will be reading
configuration files intended for newer versions, but there's a good chance
they'll be compatible enough to run, and it's easy to try.
Dan
Date: Thu, 29 Sep 2022 12:41:50 -0700
On Thu, Sep 29, 2022 at 01:58:23PM +0000, Mark Fanara via curl-library wrote:
> Recently the device vendor updated the OS image to Debian Buster.
The subject of this message doesn't match this line. If it's an OS upgrade that
happened, then it's much more than just a newer libcurl that's changed. In
effect, absolutely everything other than the hardware (and possibly your
application) has changed, including the OS, drivers, configuration files, libc,
libcurl as well as every other library in the system. Figuring out which of
those actually made things stop working is your challenge.
> After rebuilding the application, it is no longer able to push the data to
> the endpoint
How is it no longer able? What are the symptoms? Is it a client issue? Server
issue? What is failing and how?
> If I increase the MTU (bypass the wireless link), the push is completed.
Bypassing the wireless link sounds like it would cause a lot more changes than
just altering the MTU. How do you know that the MTU is the part that matters?
Have you tried lowering the MTU on the working networking transport to see if
it stops working in the same way?
> - Upgrading to newest libcurl is not feasible because of reported library dependencies. i.e. newer version is dependent upon newer version of libc which I am unable to update.
You can compile a recent libcurl very easily and link your application against
that. Even if you decide not to release it that way, it can give you valuable
data for testing. There have been 2481 bug fixes in curl since 7.68.0, after
all.
> Are there any known changes to libcurl (or other dependent libraries) that would be MTU sensitive?
There were 2503 bug fixes and 162 other changes between versions 7.38.0
and version 7.64.0. libcurl's dependencies are likely similarly changed. You
are welcome to check yourself if any of those are relevant in your case.
> Any suggestions on where to go from here?
I'd first figure out what exactly is causing the push to fail. Is the
application getting an error code? Is it getting a remote server failure code?
Is it timing out? That will help drive following steps. Next, enable libcurl
logging to see if something useful is coming out of that. It's probably also
worthwhile trying to run the old application (linked to the old libraries) on
the new system. Copy the binary and all the necessary libraries to a directory
on the new system and run the binary using LD_LIBRARY_PATH to point it to the
old libraries. This isn't failsafe, since the old libraries will be reading
configuration files intended for newer versions, but there's a good chance
they'll be compatible enough to run, and it's easy to try.
Dan
-- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.htmlReceived on 2022-09-29