Is https://github.com/apache/iceberg/pull/12670/ considered introducing a
broken change for catalog in 1.9.0? Now the client can send a list of
snapshots to the server to remove in TableMetadata class while the server
with the old Iceberg library still checks to make sure only a single
snapshotId is sent? Seems now we need to upgrade the server to use Iceberg
1.9.x.

New Client:
private Builder rewriteSnapshotsInternal(Collection<Long> idsToRemove,
boolean suppress) {
      List<Snapshot> retainedSnapshots =
          Lists.newArrayListWithExpectedSize(snapshots.size() -
idsToRemove.size());
      Set<Long> snapshotIdsToRemove = Sets.newHashSet();

      for (Snapshot snapshot : snapshots) {
        long snapshotId = snapshot.snapshotId();
        if (idsToRemove.contains(snapshotId)) {
          snapshotsById.remove(snapshotId);
          if (!suppress) {
            snapshotIdsToRemove.add(snapshotId);
          }
        }
      }

      if (!snapshotIdsToRemove.isEmpty()) {
*        changes.add(new
MetadataUpdate.RemoveSnapshots(snapshotIdsToRemove));*
        ...

Old Server:
   private static MetadataUpdate readRemoveSnapshots(JsonNode node) {
    Set<Long> snapshotIds = JsonUtil.getLongSetOrNull(SNAPSHOT_IDS, node);
    Preconditions.checkArgument(
        snapshotIds != null && *snapshotIds.size() == 1*,
        "Invalid set of snapshot ids to remove. Expected one value but
received: %s",
        snapshotIds);
    Long snapshotId = Iterables.getOnlyElement(snapshotIds);
    return new MetadataUpdate.RemoveSnapshot(snapshotId);
  }

On Fri, May 16, 2025 at 10:58 AM Fokko Driesprong <fo...@apache.org> wrote:

> Hey Russell,
>
> Thanks for driving this. Talking about making the security scanner happy:
> https://github.com/RussellSpitzer/iceberg/pull/5
>
> JB, let me know if you need any help with the Avro release!
>
> Kind regards,
> Fokko
>
> Op vr 16 mei 2025 om 19:56 schreef Driesprong, Fokko <fo...@driesprong.frl
> >:
>
>> Hey Russell,
>>
>> Thanks for driving this. Talking about making the security scanner happy:
>> https://github.com/RussellSpitzer/iceberg/pull/5
>>
>> JB, let me know if you need any help with the Avro release!
>>
>> Kind regards,
>> Fokko
>>
>> Op vr 16 mei 2025 om 19:39 schreef Russell Spitzer <
>> russell.spit...@gmail.com>:
>>
>>> Steven explained the Flink issue to me, Flink 2.0 isn't in 1.9.0 so not
>>> an issue.
>>>
>>> On Fri, May 16, 2025 at 12:20 PM Russell Spitzer <
>>> russell.spit...@gmail.com> wrote:
>>>
>>>> Ok so far of the lists proposed above I only picked 2 fixes that apply
>>>> cleanly and (we double checked)
>>>>  actually apply to 1.9.0. Some of the fixes above need other commits
>>>> which aren't in 1.9.0 so aren't an
>>>> issue. If anyone else has any other issues let me know.
>>>>
>>>> The only one i'm not sure about is the Flink 2.0 Lock code, if someone
>>>> with flink expertise can ping me I
>>>> would appreciate it since I can't figure out how the patch applies to
>>>> 1.9.0.
>>>>
>>>> https://github.com/apache/iceberg/pull/13081
>>>>
>>>> On Tue, May 13, 2025 at 11:04 PM Jean-Baptiste Onofré <j...@nanthrax.net>
>>>> wrote:
>>>>
>>>>> The new Avro release will content security improvement (and only
>>>>> this). So even if not strictly required (as iceberg is not impacted), it
>>>>> would be interesting to have security scanner happy ;)
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> Le mar. 13 mai 2025 à 23:24, Péter Váry <peter.vary.apa...@gmail.com>
>>>>> a écrit :
>>>>>
>>>>>> Do we really want to include a new lib version in a maintenance
>>>>>> release? In the past, we have seen issues when upgrading libs. Avro is 
>>>>>> very
>>>>>> important, as it is used for metadata files. I would rather not include a
>>>>>> new version, unless it is absolutely necessary.
>>>>>>
>>>>>> On Tue, May 13, 2025, 06:42 Jean-Baptiste Onofré <j...@nanthrax.net>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I did a fix/improvement on Avro. I will propose to do new Avro
>>>>>>> releases.
>>>>>>> Maybe worth to include in Iceberg 1.9.1 if the timing is ok.
>>>>>>>
>>>>>>> Regards
>>>>>>> JB
>>>>>>>
>>>>>>> Le lun. 12 mai 2025 à 20:03, Russell Spitzer <
>>>>>>> russell.spit...@gmail.com> a écrit :
>>>>>>>
>>>>>>>> I'd rather we didn't get any "feature" sorts of things in like
>>>>>>>> * Enable HTTP proxy support for the client used by REST Catalog
>>>>>>>> #12406 <https://github.com/apache/iceberg/pull/12406>
>>>>>>>> * GCP: Support multiple storage credential prefixes #12881
>>>>>>>> <https://github.com/apache/iceberg/pull/12881>
>>>>>>>>
>>>>>>>> These seem like refactors (no-ops for end users)
>>>>>>>> * Flink: Fix typo in JdbcLockFactory #12940
>>>>>>>> <https://github.com/apache/iceberg/pull/12940>
>>>>>>>> * Flink: Change Preconditions import from flink util to guava
>>>>>>>> #12939 <https://github.com/apache/iceberg/pull/12939>
>>>>>>>>
>>>>>>>>
>>>>>>>> I think these are real bugs we should fix :
>>>>>>>> * Core: Ensure reactivated view version uses correct timestamp
>>>>>>>> #12821 <https://github.com/apache/iceberg/pull/12821>
>>>>>>>> * Flink: Add lockFactory open in LockRemover for table maintenance
>>>>>>>> #12900 <https://github.com/apache/iceberg/pull/12900>
>>>>>>>>
>>>>>>>> Low Priority :
>>>>>>>> * Core: Broaden exception handling in writer clean up logic #12863
>>>>>>>> <https://github.com/apache/iceberg/pull/12863>
>>>>>>>> * Core: Disallow creation of invalid PartitionSpec #12887
>>>>>>>> <https://github.com/apache/iceberg/pull/12887>
>>>>>>>> * Core: Fix Kryo ser/de with StorageCredential config #12882
>>>>>>>> <https://github.com/apache/iceberg/pull/12882>
>>>>>>>> * Build, Core: Let RevAPI compare against 1.9.0 / Fix API breakage
>>>>>>>> around StorageCredential #12930
>>>>>>>> <https://github.com/apache/iceberg/pull/12930> // Is this a
>>>>>>>> dangerous time to change this? We are only doing a point release
>>>>>>>>
>>>>>>>>
>>>>>>>> The goal should be to just get in bug fixes for 1.9.0
>>>>>>>>
>>>>>>>> For me the priority goes
>>>>>>>> Highest -
>>>>>>>> Regressions - anything breaking the previous release (1.8.x)
>>>>>>>> Serious Bug Fixes - Correctness issues or major performance bugs
>>>>>>>> Minor Bug Fixes - Typos/ build things
>>>>>>>> --- Red Line
>>>>>>>> New Functionality / parameters ect
>>>>>>>> Lowest
>>>>>>>>
>>>>>>>> So I would avoid any "nice-to-have" items if we can and minimize
>>>>>>>> the changeset.
>>>>>>>>
>>>>>>>> On Mon, May 12, 2025 at 12:22 PM Yufei Gu <flyrain...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Thanks Kevin for the list! That looks good to me.
>>>>>>>>> Looking forward to getting these fixes out!
>>>>>>>>>
>>>>>>>>> Yufei
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, May 12, 2025 at 10:19 AM Kevin Liu <kevinjq...@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Russell,
>>>>>>>>>>
>>>>>>>>>> I went through the commits since 1.9.x release,
>>>>>>>>>> https://github.com/apache/iceberg/compare/1.9.x...main
>>>>>>>>>>
>>>>>>>>>> Here are some possible candidates for 1.9.1 patch release,
>>>>>>>>>> * Core: Fix Kryo ser/de with StorageCredential config #12882
>>>>>>>>>> <https://github.com/apache/iceberg/pull/12882>
>>>>>>>>>> * Core: Ensure reactivated view version uses correct timestamp
>>>>>>>>>> #12821 <https://github.com/apache/iceberg/pull/12821>
>>>>>>>>>> * Flink: Add lockFactory open in LockRemover for table
>>>>>>>>>> maintenance #12900 <https://github.com/apache/iceberg/pull/12900>
>>>>>>>>>> * Flink: Fix typo in JdbcLockFactory #12940
>>>>>>>>>> <https://github.com/apache/iceberg/pull/12940>
>>>>>>>>>> * Flink: Change Preconditions import from flink util to guava
>>>>>>>>>> #12939 <https://github.com/apache/iceberg/pull/12939>
>>>>>>>>>> * Core: Broaden exception handling in writer clean up logic
>>>>>>>>>> #12863 <https://github.com/apache/iceberg/pull/12863>
>>>>>>>>>> * Enable HTTP proxy support for the client used by REST Catalog
>>>>>>>>>> #12406 <https://github.com/apache/iceberg/pull/12406>
>>>>>>>>>> * Core: Disallow creation of invalid PartitionSpec #12887
>>>>>>>>>> <https://github.com/apache/iceberg/pull/12887>
>>>>>>>>>> * GCP: Support multiple storage credential prefixes #12881
>>>>>>>>>> <https://github.com/apache/iceberg/pull/12881>
>>>>>>>>>> * Build, Core: Let RevAPI compare against 1.9.0 / Fix API
>>>>>>>>>> breakage around StorageCredential #12930
>>>>>>>>>> <https://github.com/apache/iceberg/pull/12930>
>>>>>>>>>>
>>>>>>>>>> IMO most of these are "nice to have" as part of 1.9.1.
>>>>>>>>>> Let me know what you think!
>>>>>>>>>>
>>>>>>>>>> Best,
>>>>>>>>>> Kevin Liu
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, May 12, 2025 at 9:41 AM Russell Spitzer <
>>>>>>>>>> russell.spit...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> I haven't gotten any other issues for 1.9.1 on the milestone and
>>>>>>>>>>> no one has responded here.
>>>>>>>>>>> I think it's important that we get a version of Iceberg out with
>>>>>>>>>>> a working Version function
>>>>>>>>>>>  so I'll start a release today or tomorrow for a vote.
>>>>>>>>>>>
>>>>>>>>>>> On Sat, May 3, 2025 at 1:22 AM Jean-Baptiste Onofré <
>>>>>>>>>>> j...@nanthrax.net> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Russ
>>>>>>>>>>>>
>>>>>>>>>>>> Yes, agree. Your PR is good and already merged.
>>>>>>>>>>>>
>>>>>>>>>>>> I don't have anything blocker for 1.9.1 (still working on
>>>>>>>>>>>> source-ids,
>>>>>>>>>>>> but definitely not for 1.9.1).
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks !
>>>>>>>>>>>> Regards
>>>>>>>>>>>> JB
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, May 2, 2025 at 11:47 PM Russell Spitzer
>>>>>>>>>>>> <russell.spit...@gmail.com> wrote:
>>>>>>>>>>>> >
>>>>>>>>>>>> > Hey y'all!
>>>>>>>>>>>> >
>>>>>>>>>>>> > Thanks to @suilis we have learned that IcebergBuild.version()
>>>>>>>>>>>> is returning unspecified for Iceberg 1.9.0. I have a PR up
>>>>>>>>>>>> > to fix this and I think this is a clear reason to do a 1.9.1
>>>>>>>>>>>> as soon as possible. I know we have a few other issues that
>>>>>>>>>>>> > may need to be fixed as well so let's make sure we get all
>>>>>>>>>>>> those listed and I can do a release when they are ready.
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> > Please respond if you have any concerns or you have any
>>>>>>>>>>>> issues that need to go into a 1.9.1,
>>>>>>>>>>>> > Russ
>>>>>>>>>>>>
>>>>>>>>>>>

Reply via email to