snoopy icon indicating copy to clipboard operation
snoopy copied to clipboard

Oracle Cloud Agent fails to start due to incompatibility with Snoopy on Ubuntu 24.04

Open mguarienti opened this issue 10 months ago • 3 comments

Checklist before starting to submit this support request

I confirm that:

  • [x] I am requesting support! :)
  • [X] I have tested this with the latest stable Snoopy version (or the latest master build).
  • [X] I have checked the FAQ.
  • [X] I have read Snoopy's documentation here and here.
  • [X] I have searched Snoopy issues for an existing issue that matches my problem, and found none.

Issue description

I am using Snoopy version 2.5.2, which officially supports Ubuntu 24.04. However, in a VM environment on Oracle Cloud (OCI) running Ubuntu 24.04, Snoopy appears to require a version of Glibc that is not available in this Ubuntu version.

From what I understand, Ubuntu 24.04 uses GLIBC_2.39, but Snoopy requires GLIBC_2.38, GLIBC_2.33, or GLIBC_2.34, which are not available in this version of Ubuntu.

Here is the syslog output when running the command: "systemctl restart snap.oracle-cloud-agent.oracle-cloud-agent.service" or "snap restart oracle-cloud-agent"

2025-02-18T09:56:49.588242-03:00 MY-VIRTUAL-MACHINE-OCI systemd[1]: Started snap.oracle-cloud-agent.oracle-cloud-agent.service - Service for snap application oracle-cloud-agent.oracle-cloud-agent.
2025-02-18T09:56:49.609907-03:00 MY-VIRTUAL-MACHINE-OCI oracle-cloud-agent.oracle-cloud-agent[22260]: /snap/oracle-cloud-agent/72/run-as-user: /snap/oracle-cloud-agent/72/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /lib/x86_64-linux-gnu/libsnoopy.so)
2025-02-18T09:56:49.609987-03:00 MY-VIRTUAL-MACHINE-OCI oracle-cloud-agent.oracle-cloud-agent[22260]: /snap/oracle-cloud-agent/72/run-as-user: /snap/oracle-cloud-agent/72/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libsnoopy.so)
2025-02-18T09:56:49.610017-03:00 MY-VIRTUAL-MACHINE-OCI oracle-cloud-agent.oracle-cloud-agent[22260]: /snap/oracle-cloud-agent/72/run-as-user: /snap/oracle-cloud-agent/72/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libsnoopy.so)

The problem occurs with any service trying to load the libsnoopy.so library, indicating a possible compatibility issue with GLIBC on Ubuntu 24.04. When I remove Snoopy, the Oracle Cloud Agent plugin starts working again. The issue seems to be that Snoopy is requiring a version of GLIBC that is not available in Ubuntu 24.

Does Snoopy officially support GLIBC 2.39? I appreciate any guidance!

Oracle Cloud Agent support page: https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/manage-plugins-troubleshooting.htm Oracle Cloud Agent install page: https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/manage-plugins.htm

Issue reproduction steps

  • Create a VM in OCI;
  • AMD shape with full Ubuntu 24.04;
  • Run Snoopy with /etc/ld.so.preload;
  • Try to start the pre-installed oracle-cloud-agent.

Expected result

snap services oracle-cloud-agent

Service Startup Current Notes oracle-cloud-agent.oracle-cloud-agent enabled active - oracle-cloud-agent.oracle-cloud-agent-updater enabled active -

Actual result

snap services oracle-cloud-agent

Service Startup Current Notes oracle-cloud-agent.oracle-cloud-agent enabled inactive - oracle-cloud-agent.oracle-cloud-agent-updater enabled inactive -

mguarienti avatar Feb 18 '25 13:02 mguarienti

Hey @mguarienti, there is no specific glibc requirement configured anywhere within the Snoopy codebase. All the binary distribution packages are simply built on each supported platform (so no cross compilation), and whatever the regular build process determines to be a requirement (as it looks like in this case the linker is looking for specific GLIBC symbols), that gets to be a requirement.

During the release, each binary package is installed on its native platform and tested for a basic functionality, so I don't think Snoopy doesn't work on Ubuntu 24.04 in general.

That said, this feels like it could be related to Snaps. I am not an expert on Snaps, but from I gather, it is (yet another) way to package up binaries and dependencies for simpler and cohesive distribution to the enduser. And by the looks of it, the oracle-cloud-agent Snap provides a dedicated glibc library (/snap/oracle-cloud-agent/72/lib/x86_64-linux-gnu/libc.so.6; Ubuntu native glibc path is /lib/x86_64-linux-gnu/libc.so.6) for its main binary. This dedicated glibc is apparently missing the symbols that the Ubuntu native glibc provides and that Snoopy Logger for Ubuntu 24.04 (apparently) depends on. I am pretty sure that this dedicated libc .so library is stripped of any unnecessary symbols to optimize for space, and only provide the bare minimum that the Snap's main binary needs.

I am actually unsure what can be done here, as this mix&matching of libraries (preloaded libsnoopy from the main OS + glibc from a Snap) can result in exactly what you're looking at.

Can you confirm that, with the exception of Snap-based usage, Snoopy is otherwise working normally on your system (i.e. you can see the commands executed in your shell appearing in /var/log/auth.log or wherever you've configured them to be logged to)?

bostjan avatar Feb 19 '25 01:02 bostjan

Hey @bostjan I’ve opened a ticket with Oracle to see if they have a workaround or an alternative way to install the agent (like .deb or something else). I’ll keep you posted once I get any updates!

Appreciate the help!

mguarienti avatar Mar 11 '25 14:03 mguarienti

I'm running Ubuntu v25 and receive a similar error message.

~$ snap list snap: /snap/snapd/current/usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/x86_64-linux-gnu/libsnoopy.so)

snoopy is working, but it somehow broke the snap command.

gospreema avatar Jul 30 '25 07:07 gospreema