fallintoplace opened a new pull request, #1305:
URL: https://github.com/apache/iceberg-go/pull/1305

   Summary
   
   - return ErrWriterClosed when RollingDataWriter.Add observes a closed error 
channel
   - remove stopped rolling writers from the partition writer cache
   - add regression coverage for the closed-channel Add path and stale writer 
cache cleanup
   
   Why
   
   RollingDataWriter.Add was reading errorCh with a single-value receive. Once 
the stream goroutine closed that channel, Add could receive the zero error 
value, release the caller's record, and return nil. That makes a stopped writer 
look like it accepted a batch.
   
   The stream now also removes itself from the factory cache when it exits, so 
later partition writes do not keep reusing a dead writer.
   
   Testing
   
   - go test ./table -run 
'TestRollingDataWriter/Test(AddReturnsErrorAfterStreamStopsCleanly|StreamErrorRemovesWriterFromFactory|StreamErrorPathUsesAbort)'
 -count=1
   - go test ./table -count=1
   - go test ./table/... -count=1
   - go run github.com/golangci/golangci-lint/v2/cmd/[email protected] run 
--timeout=10m ./table/...
   - git diff --check
   
   Note: I also started go test ./... -count=1; it completed several packages 
successfully but sat silent for several minutes in the long tail, so I stopped 
it and kept the scoped table checks above.


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to