facebookincubator / velox

A C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems.
https://velox-lib.io/
Apache License 2.0
3.27k stars 1.08k forks source link

Docker compose fails with 'Failed to run install_mvfst .' #10291

Open jaystarshot opened 5 days ago

jaystarshot commented 5 days ago

Problem description

Ran docker-compose build ubuntu-cpp but ran into errors like

Is there an already published docker image which works?

System information

docker --version Docker version 26.1.4, build 5650f9b

arm64-apple-darwin23.4.0

CMake log

1016.8 /mvfst/quic/common/CircularDeque-inl.h: In instantiation of ‘quic::CircularDeque<T>::iterator quic::CircularDeque<T>::emplace(quic::CircularDeque<T>::const_iterator, Args&& ...) [with Args = {const quic::WriteBufferMeta&}; T = quic::WriteBufferMeta; quic::CircularDeque<T>::iterator = quic::CircularDeque<quic::WriteBufferMeta>::CircularDequeIterator<quic::WriteBufferMeta>; quic::CircularDeque<T>::const_iterator = quic::CircularDeque<quic::WriteBufferMeta>::CircularDequeIterator<quic::WriteBufferMeta>]’:
1016.8 /mvfst/quic/common/CircularDeque-inl.h:323:17:   required from ‘quic::CircularDeque<T>::iterator quic::CircularDeque<T>::insert(quic::CircularDeque<T>::const_iterator, const T&) [with T = quic::WriteBufferMeta; quic::CircularDeque<T>::iterator = quic::CircularDeque<quic::WriteBufferMeta>::CircularDequeIterator<quic::WriteBufferMeta>; quic::CircularDeque<T>::const_iterator = quic::CircularDeque<quic::WriteBufferMeta>::CircularDequeIterator<quic::WriteBufferMeta>]’
1016.8 /mvfst/quic/state/StreamData.h:513:26:   required from here
1016.8 /mvfst/quic/common/CircularDeque-inl.h:289:11: warning: operation on ‘index’ may be undefined [-Wsequence-point]
1016.8 ninja: build stopped: subcommand failed.
1016.9 + sudo --preserve-env cmake --install _build
1017.1 -- Install configuration: "Release"
1017.1 -- Installing: /usr/local/lib/cmake/mvfst/mvfst-targets.cmake
1017.1 -- Installing: /usr/local/lib/cmake/mvfst/mvfst-targets-release.cmake
1017.1 -- Installing: /usr/local/lib/cmake/mvfst/mvfst-config.cmake
1017.1 -- Installing: /usr/local/include/quic/QuicConstants.h
1017.1 -- Installing: /usr/local/lib/libmvfst_constants.a
1017.1 -- Installing: /usr/local/include/quic/QuicException.h
1017.1 -- Installing: /usr/local/lib/libmvfst_exception.a
1017.1 -- Installing: /usr/local/include/quic/api/IoBufQuicBatch.h
1017.1 -- Installing: /usr/local/include/quic/api/LoopDetectorCallback.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicBatchWriter.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicBatchWriterFactory.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicGsoBatchWriters.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicPacketScheduler.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicSocket.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicStreamAsyncTransport.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicTransportBase.h
1017.1 -- Installing: /usr/local/include/quic/api/QuicTransportFunctions.h
1017.1 CMake Error at _build/quic/api/cmake_install.cmake:86 (file):
1017.1   file INSTALL cannot find "/mvfst/_build/quic/api/libmvfst_transport.a": No
1017.1   such file or directory.
1017.1 Call Stack (most recent call first):
1017.1   _build/quic/cmake_install.cmake:71 (include)
1017.1   _build/cmake_install.cmake:74 (include)
1017.1 
1017.1 
1017.1 
1017.1 real 1m10.170s
1017.1 user 10m47.899s
1017.1 sys  0m26.077s
1017.1 + echo 'Failed to run install_mvfst .'
1017.1 Failed to run install_mvfst .
1017.1 + exit 1
majetideepak commented 2 days ago

Is there an already published docker image which works?

We have published images that are used in CI. ghcr.io/facebookincubator/velox-dev:amd64-ubuntu-22.04-avx

majetideepak commented 2 days ago

A recent ubuntu docker image build was successful https://github.com/facebookincubator/velox/actions/runs/9672757599/job/26685597501

I see arm64-apple-darwin23.4.0 in your system information. Are you building using qemu for x86_64 on apple arm64? Can you try on a x86_64 machine?

jaystarshot commented 2 days ago

Nope, I just built on arm, expecting the docker compose to pick that up and choose base images accordingly. Is the current docker compose only supported on x86?

majetideepak commented 1 day ago

Yes, docker compose for ubuntu and centos only support x86. Are there Ubuntu and Centos base images for apple arm?

majetideepak commented 1 day ago

I see that Ubuntu has an image for arm https://ubuntu.com/download/server/arm. Looks like the setup script needs some changes.

majetideepak commented 1 day ago

I hit this while building fbthrift and not mvfst. The issue is that the build failed ninja: build stopped: subcommand failed.. For me, the failure was due to c++: fatal error: Killed signal terminated program cc1plus from insufficient memory.

jaystarshot commented 1 day ago

I think I had seen the insufficient memory before and setting a limit on the threads worked-e NUM_THREADS=2. But the the error that I saw was different