Skip to content
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

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

Open
5 tasks done
mguarienti opened this issue Feb 18, 2025 · 1 comment
Open
5 tasks done
Assignees

Comments

@mguarienti
Copy link

mguarienti commented Feb 18, 2025

Checklist before starting to submit this support request

I confirm that:

  • I am requesting support! :)
  • I have tested this with the latest stable Snoopy version (or the latest master build).
  • I have checked the FAQ.
  • I have read Snoopy's documentation here and here.
  • 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 mguarienti changed the title <SUPPORT REQUEST TITLE HERE> Oracle Cloud Agent fails to start due to incompatibility with Snoopy on Ubuntu 24.04 Feb 18, 2025
@bostjan bostjan self-assigned this Feb 19, 2025
@bostjan
Copy link
Member

bostjan commented Feb 19, 2025

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)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants