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]
