Jonathan A Sternberg created ARROW-6966:
-------------------------------------------

             Summary: [Go] 32bit memset is null
                 Key: ARROW-6966
                 URL: https://issues.apache.org/jira/browse/ARROW-6966
             Project: Apache Arrow
          Issue Type: Bug
            Reporter: Jonathan A Sternberg


If you use a function that calls `memset.Set`, the implementation on a 32 bit 
machine seems to be unset. This happened in our 32 bit build here:

[https://circleci.com/gh/influxdata/influxdb/66112#tests/containers/2]
{code:java}
goroutine 66 [running]:goroutine 66 [running]:testing.tRunner.func1(0x9e1f2c0) 
/usr/local/go/src/testing/testing.go:830 +0x30epanic(0x899cb40, 0x9403c40) 
/usr/local/go/src/runtime/panic.go:522 
+0x16egithub.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/memory.Set(...)
 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/memory/memory.go:25github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array.(*builder).init(0x9e44990,
 0x20) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array/builder.go:101
 
+0xc7github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array.(*Int64Builder).init(0x9e44990,
 0x20) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array/numericbuilder.gen.go:102
 
+0x2fgithub.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array.(*Int64Builder).Resize(0x9e44990,
 0x2) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array/numericbuilder.gen.go:125
 
+0x42github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array.(*builder).reserve(0x9e44990,
 0x1, 0x9c52464) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array/builder.go:138
 
+0x72github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array.(*Int64Builder).Reserve(0x9e44990,
 0x1) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/apache/arrow/go/arrow/array/numericbuilder.gen.go:113
 
+0x51github.com/influxdata/influxdb/vendor/github.com/influxdata/flux/arrow.NewInt(0x9e4a770,
 0x1, 0x1, 0x0, 0x89f0360) 
/root/go/src/github.com/influxdata/influxdb/vendor/github.com/influxdata/flux/arrow/int.go:10
 
+0x6cgithub.com/influxdata/influxdb/storage/reads.(*floatTable).advance(0x9e42070,
 0x0) /root/go/src/github.com/influxdata/influxdb/storage/reads/table.gen.go:91 
+0x7egithub.com/influxdata/influxdb/storage/reads.newFloatTable(0x9e17740, 
0xe521a160, 0x9e1b8c0, 0x0, 0x0, 0x1e, 0x0, 0x8c13be0, 0x9e448a0, 0x9e448d0, 
...) /root/go/src/github.com/influxdata/influxdb/storage/reads/table.gen.go:47 
+0x1c2github.com/influxdata/influxdb/storage/reads.(*filterIterator).handleRead(0x9e22840,
 0x9e0d1a0, 0x8c0ce00, 0x9e48780, 0x0, 0x0) 
/root/go/src/github.com/influxdata/influxdb/storage/reads/reader.go:177 
+0x755github.com/influxdata/influxdb/storage/reads.(*filterIterator).Do(0x9e22840,
 0x9e0d170, 0x9c40070, 0x0) 
/root/go/src/github.com/influxdata/influxdb/storage/reads/reader.go:140 
+0x138github.com/influxdata/influxdb/storage/reads_test.TestDuplicateKeys_ReadFilter(0x9e1f2c0)
 /root/go/src/github.com/influxdata/influxdb/storage/reads/reader_test.go:89 
+0x1dftesting.tRunner(0x9e1f2c0, 0x8ad44e4) 
/usr/local/go/src/testing/testing.go:865 +0x97created by testing.(*T).Run 
/usr/local/go/src/testing/testing.go:916 +0x2b2
{code}
I added a print statement at where memset happened to print the function that 
was being used and got this:
{code}
<nil> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 0
{code}
If I set {{memset}} with a default, the code that calls into this works fine.
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to