pitrou opened a new issue, #15:
URL: https://github.com/apache/arrow-js/issues/15

   On a PR I got what seemed to be an occasional unrelated error in the 
integration tests between Javascript and C++:
   
https://github.com/apache/arrow/actions/runs/15113644177/job/42478772147#step:11:20082
   
   If you expand the failure, you get the following logs:
   ```
     ################# FAILURES #################
     FAILED TEST: interval_mdn C++ producing,  JS consuming
     <class 'RuntimeError'>: Command failed: /build/js/bin/integration.ts -a 
/tmp/tmp9z_g9id9/4b71e8dd_generated_interval_mdn.json_as_file -j 
/tmp/arrow-integration-da8j13w3/generated_interval_mdn.json --mode VALIDATE
     With output:
     --------------
     
      json: /tmp/arrow-integration-da8j13w3/generated_interval_mdn.json
     arrow: /tmp/tmp9z_g9id9/4b71e8dd_generated_interval_mdn.json_as_file
     Error: json and arrow record batches report the same values: fail 
      Error: 4: -1109815901,1503025502,1803493504,261723424 !== 
-1109815901,1503025502,1803493496,261723424
         at file:///build/js/bin/integration.ts:216:23
         at compareVectors (file:///build/js/bin/integration.ts:219:7)
         at file:///build/js/bin/integration.ts:191:13
         at compareTableIsh (file:///build/js/bin/integration.ts:193:7)
         at validateReaderIntegration 
(file:///build/js/bin/integration.ts:147:13)
         at validate (file:///build/js/bin/integration.ts:134:5)
         at async file:///build/js/bin/integration.ts:59:21
         at validateReaderIntegration 
(file:///build/js/bin/integration.ts:150:15)
         at validate (file:///build/js/bin/integration.ts:134:5)
         at async file:///build/js/bin/integration.ts:59:21
     
     --------------
     
     
     FAILED TEST: interval_mdn JS producing,  C++ consuming
     <class 'RuntimeError'>: Command failed: 
/build/cpp/debug/arrow-json-integration-test --integration 
--arrow=/tmp/tmp9z_g9id9/847e76a4_generated_interval_mdn.json_as_file 
--json=/tmp/arrow-integration-da8j13w3/generated_interval_mdn.json 
--mode=VALIDATE
     With output:
     --------------
     Error message: Invalid: Record batch 1 did not match
     JSON:
     f1:   [
         null,
         null,
         -1233922984M1832700302d3945364585489654316ns,
         -865764767M-1868167704d5995137276854357748ns,
         -1109815901M1503025502d1124093548480635000ns,
         null,
         -1853878757M-470410382d-3482109426864569063ns,
         -274343993M150680692d1713410614578950687ns,
         null,
         1204985559M1793434370d37200152077710886ns
       ]
     
     Arrow:
     f1:   [
         null,
         null,
         -1233922984M1832700302d3945364585489654316ns,
         -865764767M-1868167704d5995137276854357748ns,
         -1109815901M1503025502d1124093548480635008ns,
         null,
         -1853878757M-470410382d-3482109426864569063ns,
         -274343993M150680692d1713410614578950687ns,
         null,
         1204985559M1793434370d37200152077710886ns
       ]
   ```
   
   And the explanation seems to be limited floating-point precision when the 
value `-1109815901M1503025502d1124093548480635000ns` is read from the JSON 
file. The nanoseconds components is `1124093548480635000` in the JSON, but 
Javascript only knows floating-point numbers and they don't have enough 
precision for this large integer. The nanoseconds component is therefore 
rounded to `1124093548480635008`, and that fails comparing to the data received 
over Arrow IPC.
   


-- 
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...@arrow.apache.org.apache.org

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

Reply via email to