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

snappy-1.2.0 provides libsnappy.so.1.1.10 with different function signatures. #35

Closed
1 task done
chebee7i opened this issue Apr 8, 2024 · 18 comments
Closed
1 task done
Labels

Comments

@chebee7i
Copy link

chebee7i commented Apr 8, 2024

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Is it expected that snappy-1.2.0 would be based on libsnappy.so.1.1.10? Wondering if it is an error that it is named libsnappy.so.1.10 instead of libsnappy.so.1.2.0.

What seems problematic is that it is not really the same underlying version of libsnappy.so.

When I look at libsnappy.so.1.1.10 from snappy-1.2.0, I see:

$ nm -s libsnappy.so.1.1.10 | c++filt | grep RawCompress
00000000000065d0 T snappy::RawCompress(char const*, unsigned long, char*, unsigned long*, snappy::CompressionOptions)
0000000000006680 T snappy::RawCompressFromIOVec(iovec const*, unsigned long, char*, unsigned long*, snappy::CompressionOptions)

When I look at libsnappy.so.1.1.10 from snappy-1.1.10, I see:

$ nm -s libsnappy.so.1.1.10 | c++filt | grep RawCompress
00000000000049b0 T snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)
0000000000004a50 T snappy::RawCompressFromIOVec(iovec const*, unsigned long, char*, unsigned long*)

Anything expecting the latter will fail a symbol lookup with the newer version.

Installed packages

N/A

Environment info

N/A
@chebee7i chebee7i added the bug label Apr 8, 2024
@chebee7i chebee7i changed the title 1.2.0 version provides lib/libsnappy.so.1.1.10 snappy-1.2.0 provides lib/libsnappy.so.1.1.10 but with different function signatures. Apr 8, 2024
@chebee7i chebee7i changed the title snappy-1.2.0 provides lib/libsnappy.so.1.1.10 but with different function signatures. snappy-1.2.0 provides libsnappy.so.1.1.10 with different function signatures. Apr 8, 2024
@lidavidm
Copy link

lidavidm commented Apr 8, 2024

I am seeing this too. I suppose we should request for the packages to be marked broken? https://conda-forge.org/docs/maintainer/updating_pkgs/#maint-fix-broken-packages

@erykoff
Copy link

erykoff commented Apr 8, 2024

This completely breaks pyarrow, leading to segfaults.

@erykoff
Copy link

erykoff commented Apr 8, 2024

cc @xhochy who merged #34. I'm guessing something in the patches rebase went wrong.

@btschroer
Copy link

btschroer commented Apr 8, 2024

I am too observing an ImportError with Symbol not found: __ZN6snappy11RawCompress... when importing pyarrow. I also believe that the snappy-1.2.0 package should be marked as broken.

@jjerphan
Copy link
Member

jjerphan commented Apr 8, 2024

#36 has been opened to fix the runtime requirements accordingly.

@jorisvandenbossche
Copy link
Member

jorisvandenbossche commented Apr 8, 2024

I just opened conda-forge/admin-requests#973 to mark it as broken. Should that still happen if updating the runtime requirements in #36? (I would think so given that results in new builds, and the packages with build 0 would still give the problems described here?)

@jjerphan
Copy link
Member

jjerphan commented Apr 8, 2024

If #36 is merged, a repodata patch also has to be added for the already-published builds of snappy-dependent projects to depend on snappy <1.2.0.

@xhochy
Copy link
Member

xhochy commented Apr 8, 2024

The package has been marked as broken. I think the next steps are:

  1. Rebuild 1.1.10 with a x.x run_exports
  2. Adjust conda-forge-pinning
  3. Understand why the library is still called libsnappy.so.1.1.10
  4. Build 1.2 with the same run_exports
  5. Start a migration for the new snappy.

@jjerphan
Copy link
Member

jjerphan commented Apr 8, 2024

conda-forge/conda-forge-repodata-patches-feedstock#699 is ready for review.

@jjerphan
Copy link
Member

jjerphan commented Apr 8, 2024

  1. Understand why the library is still called libsnappy.so.1.1.10

google/snappy#178 fixes it.

@xhochy
Copy link
Member

xhochy commented Apr 8, 2024

google/snappy@766d24c broke the ABI

@xhochy
Copy link
Member

xhochy commented Apr 8, 2024

#37 and conda-forge/conda-forge-pinning-feedstock#5730 fixe further things.

@jorisvandenbossche
Copy link
Member

Should those PRs in this repo have already been merged? Because that now again results in the original issue, i.e. creating a fresh environment installs pyarrow with snappy which then gives an ImportError (because the new build 1 for snappy 1.2.0 is not marked as broken)

@jorisvandenbossche
Copy link
Member

Or does it take a while before the repodata-patches are propagated?

@xhochy
Copy link
Member

xhochy commented Apr 8, 2024

The initial repodata patch was faulty but should be fixed since 30min but probably not yet fully migrated through the CDN.

@xhochy
Copy link
Member

xhochy commented Apr 9, 2024

Everything seems fine now.

@asvishnyakov
Copy link

Looks like issue is still isn't resolved and Google released 1.2.1: https://github.com/google/snappy/releases/tag/1.2.1 Can someone update package for conda too, please?

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

No branches or pull requests

8 participants