Options

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

jordzillajordzilla Vertica Customer ✭
edited March 2023 in General Discussion

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

  • Options
    Sergey_Cherepan_1Sergey_Cherepan_1 ✭✭✭
    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 admintools

    admintools -t install_package -d -P all

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

Answers

  • Options
    SruthiASruthiA Administrator

    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?

  • Options
    jordzillajordzilla Vertica Customer ✭

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

    Thank you.

  • Options
    jordzillajordzilla Vertica Customer ✭

    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.

  • Options
    SruthiASruthiA Administrator

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

  • Options
    jordzillajordzilla Vertica Customer ✭
    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

  • Options
    jordzillajordzilla Vertica Customer ✭
    edited March 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!!

This discussion has been closed.