Excellent, thanks! Kenn
On Mon, Jan 19, 2026 at 8:19 AM Elia LIU <[email protected]> wrote: > Hi all, > > Thanks for the discussion and pointers. I checked GitHub and didn't > see an assigned issue/PR for this yet. > > I agree with the consensus here (Kenn/Reuven/Robert/Byron) that this > looks like a bug: we’re memoizing DoFnInvoker bytecode generation, but > the cache key is currently only the DoFn class. This appears to be > missing pertinent inputs and can lead to reusing an invoker with the > wrong cast target. > > I’d like to volunteer to fix this. > > Plan: > > 1. Add a regression test that reproduces the > collision/ClassCastException (e.g., reusing the same DoFn class in > different contexts with different cast targets). > > 2. Update ByteBuddyDoFnInvokerFactory to key the cache on the DoFn > class plus the cast target (as Byron suggested). > > 3. If the cast target isn’t directly available at the caching > boundary, I can explore using the stage name as a proxy as Robert > suggested. > > 4. Submit a PR for review. > > I’ll open a GitHub issue to track this and link it back to this thread. > > Best, > Elia LIU >
