What would cause fcsvparser() to not be installed in v12.0.2-0
We installed Vertica 12.0.2 on RHEL 8.6 with DISA STIGs applied (SELinux in Permissive mode).
Everything seems to have installed correctly and have a database running in EON-mode against MinIO.
But, when we tried to run a command that required fcsvparser() it failed with ERROR 3457.
INFO p.p.e.i.c.s.i.I18nImportServiceImpl - Running HP Vertica COPY ... INFO p.p.e.i.c.s.i.I18nImportServiceImpl - COPY plain_230303d34abd062d92f0b7d9ba("col0","col1","col2","col3","col4","col5","col6") from local '(PATH OMITTED)/f682bc98-05a2-4b81-adb7-0fe5eca09af0' PARSER fcsvparser(type='traditional', header='true', delimiter=',', enclosed_by='"', trim='false', escape=U&'\0015', reject_on_materialized_type_error='false') direct null '' record terminator E' INFO p.p.e.i.c.s.i.I18nImportServiceImpl - ' REJECTED DATA '(PATH OMITTED)/85ee30ff-5cf7-47fc-bfd0-57db735e8a5a'; INFO p.p.e.i.c.s.i.I18nImportServiceImpl - vsql:(PATH OMITTED)/4d917cd6-30b1-4123-bfc7-5748a242d3b6/vertica-plain-cmds:2: ERROR 3457: Function fcsvparser() does not exist, or permission is denied for fcsvparser() INFO p.p.e.i.c.s.i.I18nImportServiceImpl - HINT: No function matches the given name and argument types. You may need to add explicit type casts
We confirmed that, in fact, fcsvparser() is not there:
Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, protocol: TLSv1.2) default=> \df fcsvparser List of functions procedure_name | procedure_return_type | procedure_argument_types ----------------+-----------------------+-------------------------- (0 rows) default=> select version(); version ------------------------------------- Vertica Analytic Database v12.0.2-0 (1 row)
Best Answer
-
Upgrade or install can fail to install new version of packages for various reasons. That happens more often than I would like to.
Reinstall packages with admintoolsadmintools -t install_package -d -P all
At least, you will see errors why it is not installing.
-3
Answers
Please try it with dbadmin user to see if it still fails with same error. Does it show same error for other functions as well?
Hi @SruthiA , this was done using
dbadmin
as the user.Regarding the other functions, running
\df *
returns 2200 rows.Thank you.
Is there any Linux prerequisite that I may have missed that would have prevented Vertica from installing that specific function?
I did install
libgfortran
,xz-libs
, andlibgomp
.@jordzilla: It works fine for me. Please open a support case to investigate further on this issue.
eonv120=> CREATE FLEX TABLE rfc();
CREATE TABLE
eonv120=> COPY rfc FROM stdin PARSER fcsvparser(header='false');
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
eonv120=>
eonv120=> select * from rfsc;
ERROR 4566: Relation "rfsc" does not exist
eonv1203=> select * from rfc;
identity | raw
--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | \001\000\000\000\026\000\000\000\003\000\000\000\020\000\000\000\022\000\000\000\024\000\000\000101020\003\000\000\000\020\000\000\000\025\000\000\000\032\000\000\000ucol0ucol1ucol2
(1 row)
eonv120=> \df fcsvparser
List of functions
procedure_name | procedure_return_type | procedure_argument_types
----------------+-----------------------+--------------------------
FCsvParser | |
(1 row)
We'll open a support case on Monday.
Again, thank you for the help @SruthiA
Hi @Sergey_Cherepan_1 ,
Thank you for the suggestion!
This and running fapolicyd in debug mode allowed me to discover a missing rule that prevented Vertica from loading packages:
We also have telegraph running on the nodes, and that required a couple of additional rules too. But the above one was the key.
Once I put that rule into place I was able to successfully install all the missing packages.
The only exceptions were the "AWS" and "hcat" packages.
From the logs, it appears that "AWS" has been deprecated and a different approach should be used.
"hcat" I'm not sure of as it was looking for an expected .so file that is not in the file system:
Regardless, again, thank you!!