keiv.fly
keiv.fly

Reputation: 4085

"Entry Point Not Found" Error LightGBM R package in Azure

When using a LightGBM R package in Azure ML I get the following error:

[Error]         +++ NT HARD ERROR (0xc0000139) +++
[Error]             Parameter 0: 0x4ad4bc8 [log2f]
[Error]             Parameter 1: 0x4b5e2e8 [C:\src\lightgbm\libs\x64\lib_lightgbm.dll]
[Error]             Parameter 2: 0xffffffffc0000139
[Error]         [FATAL] Exception: 0xc0000139 (!! HARD ERROR !!) {Params: 0x4ad4bc8, 0x4b5e2e8, 0xffffffffc0000139, 0x0}
[Error]         [ERROR] A fatal error occurred in the running application. The application will be terminated. Code: 0xc0000139.

on page 0xc0000139 is described as "Entry Point Not Found". What does this error mean and how can I solve it?

I used XGBoost in the same way in Azure ML and it worked. And it did not ask for external libraries (dlls). LightGBM on the contrary asks lots of libraries (dlls) and I think the problem is connected with the dlls, but this error does not indicate what is actually missing.

What I did:
Installed LightGBM R package on a Virtual Machine with Windows Server 2016. For this I used:

Included in lightgbm\libs\x64 are the following packages because I previously got error 0xc0000135 with the names of these libraries:

I tried to change the R version from Microsoft R Open 3.2.2 to CRAN R 3.1.0. It executes witout errors but does not execute code after library import.

The full output of Azure ML R script:

Record Starts at UTC 08/03/2017 12:28:27:

Run the job:"/dll "LanguageWorker, Version=6.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca;Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS;RunRSNR" /Output0 "..\..\Result Dataset\Result Dataset.dataset" /Output1 "..\..\R Device\R Device.dataset"  /dataset1 "..\..\Dataset1\Dataset1.csv"    /bundlePath "..\..\Script Bundle\Script Bundle.zip"  /rStreamReader "script.R"  /rLibVersion "Microsoft R Open 3.2.2"  /ContextFile "..\..\_context\ContextFile.txt""
[Start] Program::Main
[Start]     DataLabModuleDescriptionParser::ParseModuleDescriptionString
[Stop]     DataLabModuleDescriptionParser::ParseModuleDescriptionString. Duration = 00:00:00.0045866
[Start]     DllModuleMethod::DllModuleMethod
[Stop]     DllModuleMethod::DllModuleMethod. Duration = 00:00:00.0000221
[Start]     DllModuleMethod::Execute
[Start]         DataLabModuleBinder::BindModuleMethod
[Verbose]             moduleMethodDescription LanguageWorker, Version=6.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca;Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS;RunRSNR
[Verbose]             assemblyFullName LanguageWorker, Version=6.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca
[Start]             DataLabModuleBinder::LoadModuleAssembly
[Verbose]                 Loaded moduleAssembly LanguageWorker, Version=6.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca
[Stop]             DataLabModuleBinder::LoadModuleAssembly. Duration = 00:00:00.0093763
[Verbose]             moduleTypeName Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS
[Verbose]             moduleMethodName RunRSNR
[Information]             Module FriendlyName : Execute R Script
[Information]             Module Release Status : Release
[Stop]         DataLabModuleBinder::BindModuleMethod. Duration = 00:00:00.0125213
[Start]         ParameterArgumentBinder::InitializeParameterValues
[Verbose]             parameterInfos count = 6
[Verbose]             parameterInfos[0] name = dataset1 , type = Microsoft.Numerics.Data.Local.DataTable
[Start]             DataTableCsvHandler::HandleArgumentString
[Stop]             DataTableCsvHandler::HandleArgumentString. Duration = 00:00:00.2364734
[Verbose]             parameterInfos[1] name = dataset2 , type = Microsoft.Numerics.Data.Local.DataTable
[Verbose]             Set optional parameter dataset2 value to NULL
[Verbose]             parameterInfos[2] name = bundlePath , type = System.String
[Verbose]             parameterInfos[3] name = rStreamReader , type = System.IO.StreamReader
[Verbose]             parameterInfos[4] name = seed , type = System.Nullable`1[System.Int32]
[Verbose]             Set optional parameter seed value to NULL
[Verbose]             parameterInfos[5] name = rLibVersion , type = Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS+ExecuteRScriptRVersion
[Verbose]             Converted string 'Microsoft R Open 3.2.2' to enum of type Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS+ExecuteRScriptRVersion
[Stop]         ParameterArgumentBinder::InitializeParameterValues. Duration = 00:00:00.3175225
[Verbose]         Begin invoking method RunRSNR ... 
[ModuleOutput] Executing Against R 3.2.2.0
[ModuleOutput] Executing Against R 3.2.2.0
[Information]         Microsoft Drawbridge Console Host [Version 1.0.2108.0]
[Error]         +++ NT HARD ERROR (0xc0000139) +++
[Error]             Parameter 0: 0x4ad4bc8 [log2f]
[Error]             Parameter 1: 0x4b5e2e8 [C:\src\lightgbm\libs\x64\lib_lightgbm.dll]
[Error]             Parameter 2: 0xffffffffc0000139
[Error]         [FATAL] Exception: 0xc0000139 (!! HARD ERROR !!) {Params: 0x4ad4bc8, 0x4b5e2e8, 0xffffffffc0000139, 0x0}
[Error]         [ERROR] A fatal error occurred in the running application. The application will be terminated. Code: 0xc0000139.
[Information]         [1] 56000
[Information]         The following files have been unzipped for sourcing in path=["src"]:
[Information]                            Name  Length                Date
[Information]         1 data.table_1.10.4.zip 1487417 2017-07-07 16:48:00
[Information]         2            lgb1.model   45142 2017-08-02 17:38:00
[Information]         3            lgb2.model   83455 2017-08-02 17:38:00
[Information]         4    lightgbm_2.0.4.zip 1350111 2017-08-03 14:26:00
[Information]         5      magrittr_1.5.zip  152732 2017-07-07 15:34:00
[Information]         6                R6.zip  317766 2017-08-03 10:33:00
[Information]         Loading objects:
[Information]           port1
[Information]         [1] "Loading variable port1..."
[Information]         package 'magrittr' successfully unpacked and MD5 sums checked
[Information]         package 'R6' successfully unpacked and MD5 sums checked
[Information]         package 'data.table' successfully unpacked and MD5 sums checked
[Information]         package 'lightgbm' successfully unpacked and MD5 sums checked
[Information]         data.table 1.10.4
[Information]           The fastest way to learn (by data.table authors): https://www.datacamp.com/courses/data-analysis-the-data-table-way
[Information]           Documentation: ?data.table, example(data.table) and browseVignettes("data.table")
[Information]           Release notes, videos and slides: http://r-datatable.com
[Error]         Process returned with non-zero exit code -1073741511
[Stop]     DllModuleMethod::Execute. Duration = 00:00:14.8676292
[Critical]     Error: Error 1000: RPackage library exception: Attempting to obtain R output before invoking execution process
[Critical]     {"InputParameters":{"DataTable":[{"Rows":50,"Columns":131,"estimatedSize":16928768,..........."Errors":"Microsoft.Analytics.Exceptions.ErrorMapping+ModuleException: Error 1000: RPackage library exception: Attempting to obtain R output before invoking execution process ---> Microsoft.Analytics.Modules.R.ErrorHandling.RInvalidOperationException: Attempting to obtain R output before invoking execution process\r\n   at Microsoft.MetaAnalytics.LanguageWorker.NewRWorker.GetProcessOutputs(Boolean scrub) in d:\\_Bld\\8831\\7669\\Sources\\Product\\Source\\Modules\\LanguageWorker\\LanguageWorker.Dll\\TempWorkers\\NewRWorker.cs:line 459\r\n   at Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS.ExecuteR(NewRWorker worker, DataTable dataset1, DataTable dataset2, IEnumerable`1 bundlePath, StreamReader rStreamReader, Nullable`1 seed) in d:\\_Bld\\8831\\7669\\Sources\\Product\\Source\\Modules\\LanguageWorker\\LanguageWorker.Dll\\EntryPoints\\RModule.cs:line 278\r\n   at Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS._RunImpl(NewRWorker worker, DataTable dataset1, DataTable dataset2, String bundlePath, StreamReader rStreamReader, Nullable`1 seed, ExecuteRScriptExternalResource source, String url, ExecuteRScriptGitHubRepositoryType githubRepoType, SecureString accountToken) in d:\\_Bld\\8831\\7669\\Sources\\Product\\Source\\Modules\\LanguageWorker\\LanguageWorker.Dll\\EntryPoints\\RModule.cs:line 207\r\n   at Microsoft.MetaAnalytics.LanguageWorker.LanguageWorkerClientRS.RunRSNR(DataTable dataset1, DataTable dataset2, String bundlePath, StreamReader rStreamReader, Nullable`1 seed, ExecuteRScriptRVersion rLibVersion) in d:\\_Bld\\8831\\7669\\Sources\\Product\\Source\\Modules\\LanguageWorker\\LanguageWorker.Dll\\EntryPoints\\REntryPoint.cs:line 105\r\n   --- End of inner exception stack trace ---","Warnings":[],"Duration":"00:00:14.8605990"}
Module finished after a runtime of 00:00:15.3186157 with exit code -2
Module failed due to negative exit code of -2

Upvotes: 0

Views: 275

Answers (1)

keiv.fly
keiv.fly

Reputation: 4085

As suggested on Github before compilation I changed in the file https://github.com/Microsoft/LightGBM/blob/master/R-package/src/install.libs.R#L4 the line use_mingw <- FALSE to use_mingw <- TRUE. And Azure ML finally accepted the package.

It seems there is a compatibility issue between Azure ML and Visual C++ libraries.

Upvotes: 0

Related Questions