quinnj opened a new pull request, #445:
URL: https://github.com/apache/arrow-julia/pull/445

   Fixes #396.
   
   As noted in the originally reported issue, enabling debug logging when 
writing arrow data with compression can result in segfaults because the 
underlying CodecX package have debug logs, causing task switches/migration and 
thus making the pattern of using a single `X_COMPRESSOR` array indexed by 
`Threads.threadid()` unsafe since multiple threads may try using the same 
compressor at the same time.
   
   We fix this by wrapping each compressor in a `Lockable` and ensuring the 
`compress` (or `uncompress`) operation holds the lock for the duration of the 
operation. We also:
   * Add a decompressor per thread to avoid recreating them over and over 
during reading
   * Lazily initialize compressors/decompressors in a way that is 1.9+ safe and 
only creates the object when needed by a specific thread
   * Switch from WorkerUtilities -> ConcurrentUtilities (the package was 
renamed)
   
   Successor to https://github.com/apache/arrow-julia/pull/397; I've added 
@svilupp as a co-author here since they started the original movement for the 
code to go in this direction.


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

Reply via email to