[MCOL-1471] PDI CS Bulk Load plugin displays error during execution Created: 2018-06-14  Updated: 2023-10-26  Resolved: 2018-06-14

Status: Closed
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: 1.1.5
Fix Version/s: 1.1.5

Type: Bug Priority: Minor
Reporter: Elena Kotsinova (Inactive) Assignee: Elena Kotsinova (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Sprint: 2018-12

 Description   

CentOS
Version: 1.1.5
Revision: ba633da

During execution of the transformation with bulk adapter there is an error:

Native code library failed to load by parent classloader.
Ensure that it is loaded by a child classloader
java.lang.UnsatisfiedLinkError: no javamcsapi in java.library.path
2018/06/14 05:42:02 - Cards Load - Using run configuration [Pentaho local]
2018/06/14 05:42:02 - Cards Load - Using legacy execution engine
2018/06/14 05:42:02 - cards-load - Dispatching started for transformation [cards-load]
2018/06/14 05:42:31 - MariaDB ColumnStore Bulk Loader.0 - ERROR (version 8.0.0.0-28, build 8.0.0.0-28 from 2017-11-05 07.27.50 by buildguy) : Error initializing step [MariaDB ColumnStore Bulk Loader]



 Comments   
Comment by Andrew Hutchings (Inactive) [ 2018-06-14 ]

elena.kotsinova did you have the API RPM installed? That error appears to indicate that you didn't.

Comment by Elena Kotsinova (Inactive) [ 2018-06-14 ]

Separate installation of API is not required. Plugin should be built with everything needed. Maybe Jens can tell more details.

Comment by Jens Röwekamp (Inactive) [ 2018-06-14 ]

True, separate installation is not required.

elena.kotsinova On which operating system did the error occur?
Just read the description once again. CentOS.

Comment by Jens Röwekamp (Inactive) [ 2018-06-14 ]

Okay my bad, over read that the error just occurred during the execution. Can confirm now for execution and custom mapping.

Can't confirm, not a bug, will change ticket description.

Comment by Jens Röwekamp (Inactive) [ 2018-06-14 ]

This is a normal error message and not impacting the functionality. Kettle changes the java.library.path during its initialization. Therefore we can't use installed versions of mcsapi and do have to bundle them with kettle. As javamcsapi needs to include the native mcsapi C++ libraries it by default checks ld_library_path for these libraries through a parent classloader. This should fail as we don't have mcsapi installed and kettle changes the ld_library_path as well. Hence the described error messages. Instead kettle uses a child classloader to load the native mcsapi C++ libraries and conforms that one line earlier in the log. Therefore, the plugin should work as expected. As the error message is thrown by mcsapi and mcsapi needs the parent classloader for other projects it can't be omitted, only changed.

ColumnStore BulkWrite SDK /home/jens/Desktop/data-integration/plugins/kettle-columnstore-bulk-exporter-plugin/lib/libjavamcsapi.so loaded by child classloader.
Native code library failed to load by parent classloader.
Ensure that it is loaded by a child classloader
java.lang.UnsatisfiedLinkError: no javamcsapi in java.library.path

Comment by Jens Röwekamp (Inactive) [ 2018-06-14 ]

Maybe your bug is related to some other error message.

Comment by Elena Kotsinova (Inactive) [ 2018-06-14 ]

the columnstore instance was broken.
build works ok now.

Comment by Elena Kotsinova (Inactive) [ 2018-06-14 ]

verified

Generated at Thu Feb 08 02:29:00 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.