Skip to main content
Question

What would cause fcsvparser() to not be installed in v12.0.2-0

  • March 3, 2023
  • 7 replies
  • 14 views

jordzilla
Forum|alt.badge.img+1

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)

7 replies

SruthiA
Forum|alt.badge.img+1
  • Participating Frequently
  • March 3, 2023

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?


jordzilla
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • March 4, 2023

Hi @SruthiA , this was done using dbadmin as the user.
Regarding the other functions, running \df * returns 2200 rows.

Thank you.


jordzilla
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • March 4, 2023

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, and libgomp.


SruthiA
Forum|alt.badge.img+1
  • Participating Frequently
  • March 4, 2023

@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.

10,10,20
.

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)


jordzilla
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • March 4, 2023
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=> CREATE FLEX TABLE rfc();
CREATE TABLE
default=> COPY rfc FROM stdin PARSER fcsvparser(header='false');
ERROR 3457:  Function fcsvparser() does not exist, or permission is denied for fcsvparser()
HINT:  No function matches the given name and argument types. You may need to add explicit type casts

We'll open a support case on Monday.

Again, thank you for the help @SruthiA


Sergey_Cherepan_1
Forum|alt.badge.img+2

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 admintools

admintools -t install_package -d -P all

At least, you will see errors why it is not installing.


jordzilla
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • March 5, 2023

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:

# This override is required for Vertica to operate properly
allow_log perm=any dir=/opt/vertica/bin/ : ftype=application/x-sharedlib trust=0

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:

2023-03-05 21:00:28.250 admintools/2069024:0x7f9a67d4d740 [md5sum_check.is_md5sum_matched] <INFO> Error: The package path
/opt/vertica/packages/hcat/lib/libhcat.so
does not exist
2023-03-05 21:00:28.250 admintools/2069024:0x7f9a67d4d740 [commandLineCtrl.installPackage] <INFO> Failed to install package hcat

Regardless, again, thank you!!