The Vertica Forum recently got a makeover! Let us know what you think by filling out this short, anonymous survey.
Please take this survey to help us learn more about how you use third party tools. Your input is greatly appreciated!
std::bad_alloc when installing CompatLib package from vertica-extension-packages

I am trying to install the compatlib_functions package from https://github.com/vertica/Vertica-Extension-Packages/edit/master/ . I am getting the following error : " SQL Error [3399] [VP001]: [Vertica]VJDBC ROLLBACK: Failure in UDx RPC call InvokeGetLibraryManifest(): Exception calling getLibraryManifest() in User Defined Object [], message: std::bad_alloc " . I ran the command "make install" in the compatlib_functions directory . From the vertica documents I found that bad_alloc may be due to the low memory allocation for the UDX but my "FencedUDxMemoryLimitMB" parameter is set to -1(no limit on memory)
0
Answers
@karthikreddy could you please share me your gcc and g++ version?
gcc version - 5.4.0
g++ version - 5.4.0
also from the vertica.log file the issue is related to memory , the log says "UDxSideProcessMonitor:0x7fbbd97fb700 [Util] UDx side process 243539 for session v_vestige_node0001-476084:0xc6707 exceeded requested memory (limit: 0 actual: 26922)" , but "FencedUDxMemoryLimitMB" parameter is set to -1
@karthikreddy : please update your make file with the below flags and try to run make install.
CXXFLAGS="-fabi-version=2 -D_GLIBCXX_USE_CXX11_ABI=0"
@karthikreddy I just tried to install compatlib and did not face any issues. Please find complete example below. I hope this helps.
In my case, FencedUDxMemoryLimitMB is set to -1
dbadmin=> select get_config_parameter('FencedUDxMemoryLimitMB');
get_config_parameter
-1
(1 row)
g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I downloaded the vertica extensions packages from github and then navigated to the below directory
/home/dbadmin/Vertica-Extension-Packages-master/compatlib_functions
I had to edit the make file and add -std=c++11 for CXXFLAGS and ran make command as follows
compatlib_functions]$ make
g++ -g -D HAVE_LONG_LONG_INT_64 -c -I ../include -Wall -Wno-unused-value -fPIC -std=c++11 -I /opt/vertica/sdk/include -I /home/dbadmin/Vertica-Extension-Packages-master/compatlib_functions/src/third-party/include -O3 -DNDEBUG /opt/vertica/sdk/include/Vertica.cpp -o build/Vertica.o
g++ -g -D HAVE_LONG_LONG_INT_64 -c -I ../include -Wall -Wno-unused-value -fPIC -std=c++11 -I /opt/vertica/sdk/include -I /home/dbadmin/Vertica-Extension-Packages-master/compatlib_functions/src/third-party/include -O3 -DNDEBUG src/ConnectBy.cpp -o build/ConnectBy.o
g++ -g -D HAVE_LONG_LONG_INT_64 -c -I ../include -Wall -Wno-unused-value -fPIC -std=c++11 -I /opt/vertica/sdk/include -I /home/dbadmin/Vertica-Extension-Packages-master/compatlib_functions/src/third-party/include -O3 -DNDEBUG src/Transpose.cpp -o build/Transpose.o
g++ -g -D HAVE_LONG_LONG_INT_64 -c -I ../include -Wall -Wno-unused-value -fPIC -std=c++11 -I /opt/vertica/sdk/include -I /home/dbadmin/Vertica-Extension-Packages-master/compatlib_functions/src/third-party/include -O3 -DNDEBUG src/GroupGenerator.cpp -o build/GroupGenerator.o
mkdir -p lib
g++ -shared -o lib/CompatLib.so build/Vertica.o build/ConnectBy.o build/Transpose.o build/GroupGenerator.o
Next I just ran install.sql to create libraries.
compatlib_functions]$ vsql -f ddl/install.sql
Password:
version
Vertica Analytic Database v10.1.1-0
(1 row)
CREATE LIBRARY
CREATE TRANSFORM FUNCTION
CREATE TRANSFORM FUNCTION
CREATE TRANSFORM FUNCTION
CREATE TRANSFORM FUNCTION
CREATE TRANSFORM FUNCTION
CREATE TRANSFORM FUNCTION