trino
Remove signer override
#25791
Merged

Remove signer override #25791

wendigo merged 2 commits into master from serafin/remove-custom-signer
wendigo
wendigo9 days ago❤ 1

It's no longer needed since AWS SDK v2 added a LegacyMd5Plugin to ensure backward compatibility with S3-compliant storage.

Should fix #25780

Description

Additional context and related issues

Release notes

( ) This is not user-visible or is docs only, and no release notes are required.
( ) Release notes are required. Please propose a release note for me.
( ) Release notes are required, with the following suggested text:

## Section
* Fix some things. ({issue}`issuenumber`)
cla-bot cla-bot added cla-signed
wendigo wendigo requested a review from losipiuk losipiuk 9 days ago
wendigo wendigo requested a review from ebyhr ebyhr 9 days ago
wendigo wendigo force pushed from 42ea7c3e to 5a6f4d4d 9 days ago
wendigo
wendigo9 days ago

Tested manually against Dell ECS

pettyjamesm
pettyjamesm approved these changes on 2025-05-14
wendigo Remove signer override
eb7ffab3
wendigo Allow configuring S3 endpoint in tests
816a3794
wendigo wendigo force pushed from 5a6f4d4d to 816a3794 9 days ago
wendigo
wendigo9 days ago

@twuebi can you check whether this change fixes your problem?

anusudarsan
anusudarsan approved these changes on 2025-05-14
ebyhr
ebyhr approved these changes on 2025-05-14
twuebi
twuebi9 days ago👍 1

@twuebi can you check whether this change fixes your problem?

Hi, thanks for the fix, I'm not sure how to test, I tried building Trino on mac with m3 but it failed on the trino-docs step, is there a docker image available for this PR?

Following my analysis after stepping through the function with a debugger, the fix should work.

wendigo
wendigo9 days ago

@twuebi you can build without trino-docs (it should work) by calling ./mvnw with -pl "!:trino-docs"

twuebi
twuebi8 days ago

Thanks, I managed to build trino now, but cannot build the docker image:

...
  Running scriptlet: filesystem-3.16-5.el9.x86_64                         68/68
rosetta error: Unable to open /proc/self/exe: 2
 warning: %posttrans(filesystem-3.16-5.el9.x86_64) scriptlet failed, signal 5

Error in POSTTRANS scriptlet in rpm package filesystem
  Running scriptlet: libstdc++-11.5.0-5.el9_5.x86_64                      68/68
rosetta error: Unable to open /proc/self/exe: 2
...
Failed:
  ca-certificates-2024.2.69_v8.0.303-91.4.el9_4.noarch

I also haven't gotten it to run on host:

trino-server/target/trino-server-476-SNAPSHOT/bin/launcher run --data-dir /tmp/trino
procname shim does not exist at location .../trino/core/trino-server/target/trino-server-476-SNAPSHOT/bin/darwin-arm64/libprocname.so
Error occurred during initialization of VM
Could not find agent library /usr/lib/trino/bin/libjvmkill.so in absolute path, with error: dlopen(/usr/lib/trino/bin/libjvmkill.so, 0x0001): tried: '/usr/lib/trino/bin/libjvmkill.so' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/trino/bin/libjvmkill.so' (no such file), '/usr/lib/trino/bin/libjvmkill.so' (no such file, not in dyld cache)

I'm quite confident that your fix is working fine, if possible, could you go ahead and merge? I'll happily test once there's an image available. Otherwise, I'd also try suggestions to fix my build / run issues.

wendigo
wendigo8 days ago

You can try to build only your architecture: ./core/docker/build.sh -a arm64

twuebi
twuebi8 days ago

Thanks, that seems to work, I'll get back to you once I finished testing!

twuebi
twuebi8 days ago

I've verified the fix, it works. I ran into some troubles where trino does not seem to send the X-Iceberg-Access-Delegation header. Without changing the default of lakekeeper to vended-credentials, I was hitting missing credentials in this check (io/trino/plugin/iceberg/IcebergMetadata.java:1285), not sure if that was a recent change in trino:

try {
            // S3 Tables internally assigns a unique location for each table
            if (!isS3Tables(location.toString())) {
                TrinoFileSystem fileSystem = fileSystemFactory.create(session.getIdentity(), transaction.table().io().properties());
                if (!replace && fileSystem.listFiles(location).hasNext()) {
                    throw new TrinoException(ICEBERG_FILESYSTEM_ERROR, format("" +
                            "Cannot create a table on a non-empty location: %s, set 'iceberg.unique-table-location=true' in your Iceberg catalog properties " +
                            "to use unique table locations for every table.", location));
                }
            }
            return newWritableTableHandle(tableMetadata.getTable(), transaction.table(), retryMode);
        }
        catch (IOException e) {
            throw new TrinoException(ICEBERG_FILESYSTEM_ERROR, "Failed checking new table's location: " + location, e);
        }

anyways, many thanks for fixing this bug & helping me to build the container.

twuebi
twuebi approved these changes on 2025-05-15
wendigo
wendigo8 days ago

@twuebi this is probably: #25800

wendigo wendigo merged 754a1a8f into master 8 days ago
wendigo wendigo deleted the serafin/remove-custom-signer branch 8 days ago
wendigo
wendigo8 days ago (edited 8 days ago)❤ 1

@twuebi the second bug was actually related to iceberg 1.9.0 update (http client changes), credit goes to @chenjian2664 and @anusudarsan for fixing that :)

github-actions github-actions added this to the 476 milestone 8 days ago
twuebi
twuebi7 days ago❤ 1

@twuebi the second bug was actually related to iceberg 1.9.0 update (http client changes), credit goes to @chenjian2664 and @anusudarsan for fixing that :)

Thanks a lot, just tested and it was indeed fixed by #25800!

wendigo
wendigo7 days ago

@twuebi our internal testing caught that :)

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone