Neal Richardson created ARROW-5332:
--------------------------------------

             Summary: [R][C++] R package fails to build/install: error in 
dyn.load()
                 Key: ARROW-5332
                 URL: https://issues.apache.org/jira/browse/ARROW-5332
             Project: Apache Arrow
          Issue Type: Bug
          Components: R
            Reporter: Neal Richardson
             Fix For: 0.14.0


Symptoms: R package appears to build but fails to load because it can't find 
libarrow.14 (with slight name variations per platform). On macOS, I see 
{code:java}
# compiling compiling
installing to /Users/enpiar/R/00LOCK-r/00new/arrow/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘arrow’ in dyn.load(file, DLLpath = 
DLLpath, ...):
unable to load shared object 
'/Users/enpiar/R/00LOCK-r/00new/arrow/libs/arrow.so':
dlopen(/Users/enpiar/R/00LOCK-r/00new/arrow/libs/arrow.so, 6): Library not 
loaded: @rpath/libarrow.14.dylib
Referenced from: /Users/enpiar/R/00LOCK-r/00new/arrow/libs/arrow.so
Reason: image not found
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Users/enpiar/R/arrow’{code}
The sparklyr R package has also experienced this on Ubuntu: 
{code:java}
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for 'arrow' in dyn.load(file, DLLpath = 
DLLpath, ...):
unable to load shared object 
'/home/travis/R/Library/00LOCK-arrow/00new/arrow/libs/arrow.so':
libarrow.so.14: cannot open shared object file: No such file or directory
{code}
This problem does not occur with the 0.13 release. I can `brew install 
apache-arrow` and then successfully install the R package; sparklyr on Travis 
tests 0.11, 0.13, and the latest of master branch of apache/arrow, and only the 
master branch fails. 

According to sparklyr's build history on Travis, the last passing build with 
master branch of arrow was [April 
5|https://travis-ci.org/rstudio/sparklyr/builds/516222934]; the next build was 
on [April 22|https://travis-ci.org/rstudio/sparklyr/jobs/523326800] and it 
failed. So something changed in that window, it seems. 

There's nothing obvious (to me) in the CMake or make output that would indicate 
an error in the C++ build.

Interestingly, the R build on arrow's Travis-CI is not failing, so in addition 
to there apparently being some change that broke both [how the R package 
recommends 
building|https://github.com/apache/arrow/blob/7a495e7800ed2f184da1d5ffc4efde7d6c4abcac/r/README.Rmd#L38-L43]
 and [how sparklyr is 
building|https://github.com/rstudio/sparklyr/blob/master/ci/arrow-build.sh], 
there appears to be some [combination of 
flags|https://github.com/apache/arrow/blob/master/ci/travis_before_script_cpp.sh]
 that does result in a successful build.

Browsing through patches that landed between April 5-22, three seemed like 
suspects, though I haven't yet tried bisecting the history to find out which 
commit exactly introduces the relevant change.

* 
[https://github.com/apache/arrow/commit/f014d76c68a9a977a19f87f7ea77511e4753bb8c]

* 
[https://github.com/apache/arrow/commit/d9f675328edb1be9fc63a753cf05e3b4e9024707]

* 
[https://github.com/apache/arrow/commit/76e1bc5dfb9d08e31eddd5cbcc0b1bab934da2c7]

cc [~romainfrancois] [~javierluraschi]

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to