psarna opened a new issue, #443:
URL: https://github.com/apache/iceberg-go/issues/443

   ### Apache Iceberg version
   
   None
   
   ### Please describe the bug 🐞
   
   When running the `TestMergeManifests` test with `-race` flag, a data report 
is created (attached to the end of the message).
   I only skimmed the code, but it looks like the culprit is concurrent 
fetching of manifest entries 
[here](https://github.com/apache/iceberg-go/blob/85f700808061fcea3655412245ef5d59f1784b69/table/scanner.go#L356).
 All concurrent requests write to the same structure 
[here](https://github.com/apache/iceberg-go/blob/85f700808061fcea3655412245ef5d59f1784b69/table/evaluators.go#L754-L756).
   
   I confirmed that setting the concurrency here to `1` makes all the tests 
pass the data race check.
   
   ```
   $ go test -race -run TestTableWriting/TestMergeManifests
   ==================
   WARNING: DATA RACE
   Write at 0x00c000f7dc20 by goroutine 353:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:754 +0xb9
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Previous write at 0x00c000f7dc20 by goroutine 354:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:754 +0xb9
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Goroutine 353 (running) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   
   Goroutine 354 (finished) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   ==================
   ==================
   WARNING: DATA RACE
   Write at 0x00c000f7dc28 by goroutine 353:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:754 +0xf9
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Previous write at 0x00c000f7dc28 by goroutine 354:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:754 +0xf9
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Goroutine 353 (running) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   
   Goroutine 354 (finished) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   ==================
   ==================
   WARNING: DATA RACE
   Write at 0x00c000f7dc30 by goroutine 353:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:755 +0x164
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Previous write at 0x00c000f7dc30 by goroutine 354:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:755 +0x164
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Goroutine 353 (running) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   
   Goroutine 354 (finished) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   ==================
   ==================
   WARNING: DATA RACE
   Write at 0x00c000f7dc38 by goroutine 353:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:756 +0x1f0
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Previous write at 0x00c000f7dc38 by goroutine 354:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:756 +0x1f0
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Goroutine 353 (running) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   
   Goroutine 354 (finished) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   ==================
   ==================
   WARNING: DATA RACE
   Write at 0x00c000f7dc40 by goroutine 353:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:756 +0x232
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Previous write at 0x00c000f7dc40 by goroutine 354:
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval()
         /dev/repo/iceberg-go/table/evaluators.go:756 +0x232
     github.com/apache/iceberg-go/table.(*inclusiveMetricsEval).Eval-fm()
         <autogenerated>:1 +0x47
     github.com/apache/iceberg-go/table.openManifest()
         /dev/repo/iceberg-go/table/scanner.go:142 +0x1b2
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries.func1()
         /dev/repo/iceberg-go/table/scanner.go:358 +0xd0
     golang.org/x/sync/errgroup.(*Group).add.func1()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:130 
+0x141
   
   Goroutine 353 (running) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225  testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   
   Goroutine 354 (finished) created at:
     golang.org/x/sync/errgroup.(*Group).add()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:98 +0xe4
     golang.org/x/sync/errgroup.(*Group).Go()
         /dev/go/pkg/mod/golang.org/x/sync@v0.14.0/errgroup/errgroup.go:93 
+0x791
     github.com/apache/iceberg-go/table.(*Scan).collectManifestEntries()
         /dev/repo/iceberg-go/table/scanner.go:356 +0x531
     github.com/apache/iceberg-go/table.(*Scan).PlanFiles()
         /dev/repo/iceberg-go/table/scanner.go:399 +0xb1
     github.com/apache/iceberg-go/table.(*Scan).ToArrowRecords()
         /dev/repo/iceberg-go/table/scanner.go:441 +0x64
     github.com/apache/iceberg-go/table.(*Scan).ToArrowTable()
         /dev/repo/iceberg-go/table/scanner.go:474 +0x8c
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1125 +0x21f0
     github.com/apache/iceberg-go/table_test.arrowTableWithNull()
         /dev/repo/iceberg-go/table/table_test.go:974 +0x14b
     
github.com/apache/iceberg-go/table_test.(*TableWritingTestSuite).TestMergeManifests()
         /dev/repo/iceberg-go/table/table_test.go:1067 +0x7d1
     runtime.call16()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/runtime/asm_amd64.s:775
 +0x42
     reflect.Value.Call()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/reflect/value.go:368
 +0xb5
     github.com/stretchr/testify/suite.Run.func1()
         /dev/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 
+0x6ed
     testing.tRunner()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1792
 +0x225
     testing.(*T).Run.gowrap1()
         
/dev/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.2.linux-amd64/src/testing/testing.go:1851
 +0x44
   ==================
   --- FAIL: TestTableWriting (0.64s)
       --- FAIL: TestTableWriting/TestMergeManifests (0.37s)
           testing.go:1490: race detected during execution of test
   FAIL
   exit status 1
   FAIL github.com/apache/iceberg-go/table      0.948s
   ```


-- 
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: issues-unsubscr...@iceberg.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to