dpol1 opened a new pull request, #8790:
URL: https://github.com/apache/storm/pull/8790

     ## What is the purpose of the change
   
   - A windowed bolt configured with a late tuple stream 
(`withLateTupleStream`) fails to deliver late tuples across worker              
  boundaries. The emit wraps the input `Tuple` as a value, and `TupleImpl` 
holds a `GeneralTopologyContext` that Kryo cannot serialize, so the late stream 
breaks as soon as it targets a task on another worker (works in local mode 
only).
   
   - This adds `DetachedTuple`, a serializable snapshot of a `Tuple` (source 
component/task/stream, fields, values, no context). `WindowedBoltExecutor` now 
emits a `DetachedTuple` on the late stream instead of the raw `TupleImpl`.
   
     Note: the value in `LATE_TUPLE_FIELD` is now a `DetachedTuple`. It is 
unanchored, uses value-based equality, and `getContext()` throws. Docs and 
`withLateTupleStream` javadoc updated accordingly.
   
    - Fix #7782
   
     ## How was the change tested
   
     - `DetachedTupleTest`: snapshot, field/value access, equals/hashCode, 
unanchored message id, `getContext()` throwing.
     - `WindowedBoltExecutorTest`: regression test round-tripping a late tuple 
through Kryo with `topology.fall.back.on.java.serialization=false` (the path 
that failed).
     - Updated `PersistentWindowedBoltExecutorTest` mocks for the new 
constructor reads.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to