Support Apple Silicon M1 for docker vertica-ce

nicopadunicopadu Community Edition User
edited March 2023 in General Discussion

Hello!
Just switched from an Intel-based laptop to a new Apple M1 Pro, but unfortunately found that docker image for Vertica-CE is not supported in this arm architecture.
Tried a couple of emulators without any luck.

Do you have any plan to support other architecture than amd64 for vertica-ce image?

Usage scenario is only local development with very reduced requirements/functionalities, community edition is more than enough.

Thanks!

Answers

  • Bryan_HBryan_H Vertica Employee Administrator

    Try the following in the container - the VERTICA_MEMDEBUG setting worked for another Mac user:
    [dbadmin@vertica log]$ export VERTICA_MEMDEBUG=2
    [dbadmin@vertica log]$ rm -rf /home/dbadmin/docker/
    [dbadmin@vertica log]$ /opt/vertica/bin/admintools -t create_db --database=docker --password='' --hosts=localhost
    ...
    [dbadmin@vertica log]$ vsql
    Welcome to vsql, the Vertica Analytic Database interactive terminal.

  • nicopadunicopadu Community Edition User
    edited March 2022

    Thanks!

    I was originally using vertica-ce 10 version. Need to upgrade to 11
    Also including env VERTICA_MEMDEBUG=2 did the trick.

    This command now runs...
    docker run -p 5433:5433 -p 5444:5444 --name vertica_ce --platform linux/amd64 --env VERTICA_MEMDEBUG=2 vertica/vertica-ce:11.1.0-0

    It takes longer than expected to complete VMart example loading, but it's something we can tweak/skip if needed.

    Couln't find any perf degradation by using VERTICA_MEMDEBUG=2. And quite vague documentation about that. Do you have any idea what's behind this flag that's worth considering?

  • nicopadunicopadu Community Edition User

    Well, update on this thread :(
    Originally it looks like all is OK, Vertica single node shows as UP and clients are able to connect to it.
    But after a certain point there's an internal error and container just crashes.

    Below is an extract of ErrorReport.txt obtained from docker volume

    Backtrace Generated by Error
    Signal: [0x000000000000000b] PID: [0x00000000000001e3] PC: [0x00000040023cf220] FP: [0x00000042f8511cc0] SIGSEGV: SEGV_MAPERR SI_ADDR : [0x00000045b7833f6c]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x46fc75d) [0x611dbfd]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x4817850) [0x6238cf0]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x481b647) [0x623cae7]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x481b76e) [0x623cc0e]
    (_L_unlock_13+0x34) [0x4001c4b630]
    (__memcmp_sse4_1+0x40) [0x40023cf220]
    (_ZNSt6vectorISsSaISsEEaSERKS1_+0x2f8690) [0x188b8b0]
    (_ZNSt6vectorISsSaISsEEaSERKS1_+0x2ff735) [0x1892955]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x4c757b) [0x1ee8a1b]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x4cc784) [0x1eedc24]
    (_ZNSt6vectorISsSaISsEEaSERKS1_+0xaefb5) [0x16421d5]
    (_ZNSt6vectorISsSaISsEEaSERKS1_+0xafc6b) [0x1642e8b]
    (_ZNSt6vectorISsSaISsEEaSERKS1_+0xaffb7) [0x16431d7]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x45b2149) [0x5fd35e9]
    (_ZNSt6vectorIcSaIcEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPcS1_EEmRKc+0x45b2e73) [0x5fd4313]
    (start_thread+0xc5) [0x4001c43ea5]
    (clone+0x6d) [0x4002363b0d]
    END BACKTRACE
    THREAD CONTEXT
    Thread type: EE Internal Command Queue Thread
    Request: COPY myschema.TEST_TABLE FROM '/docker-entrypoint-initdb.d/TEST_TABLE.csv' PARSER fcsvparser();
               0: Root
               7: GroupByNothing
    FAULT =>   6: DataTarget
               1: NewEENode
               2) ExprEval         depth=(0) parent=0, peer#0; outTup nCol=18,nkey=0,inlSz=2044,fixSz=144
               3) LoadUnion        (1) 2, #0; out 17,0,2036,136
               4) ExprEval         (2) 3, #0; out 17,0,2036,136
               5) Load             (3) 4, #0; CRPstate=4; out 17,0,2036,136
    Transaction: [0x00a00000000004f8]
    END THREAD CONTEXT
    

    Has anyone been able to use any vertica-ce docker image using Docker Desktop for Mac (M1 arm64 version)?

  • SruthiASruthiA Vertica Employee Administrator

    @nicopadu: Is /docker-entrypoint-initdb.d/TEST_TABLE.csv a NFS mount point? Since it is a crash, we may need to open a bug and collect log files. Could you please open a support case?

  • nicopadunicopadu Community Edition User

    This TEST_TABLE.csv is a local folder mount using docker-compose.
    Will try to find someone to open a support case from our side

This discussion has been closed.