查詢集合容器作業正常,但查詢任何型別的時間序列容器——即使只是一個簡單的選擇 *——都會導致分段錯誤。
這是我的 Dockerfile 的樣子:
FROM centos:7
RUN yum -y groupinstall "Development Tools"
RUN yum -y install epel-release wget
RUN yum -y install pcre2-devel.x86_64
RUN yum -y install openssl-devel libffi-devel bzip2-devel -y
RUN yum -y install xz-devel perl-core zlib-devel -y
RUN yum -y install numpy scipy
#COPY griddb.repo /etc/yum.repos.d/
#RUN yum -y update
#RUN yum -y install griddb-c-client
# Make c_client
WORKDIR /
RUN wget --no-check-certificate https://github.com/griddb/c_client/archive/refs/tags/v4.6.0.tar.gz
RUN tar -xzvf v4.6.0.tar.gz
WORKDIR /c_client-4.6.0/client/c
RUN ./bootstrap.sh
RUN ./configure
RUN make
WORKDIR /c_client-4.6.0/bin
RUN ls
ENV LIBRARY_PATH ${LIBRARY_PATH}:/c_client-4.6.0/bin
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/c_client-4.6.0/bin
# Make SSL for Python3.10
WORKDIR /
RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1c.tar.gz
RUN tar -xzvf openssl-1.1.1c.tar.gz
WORKDIR /openssl-1.1.1c
RUN ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic
RUN make
RUN make test
RUN make install
# Build Python3.10
WORKDIR /
RUN wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
RUN tar xvf Python-3.10.4.tgz
WORKDIR /Python-3.10.4
RUN ./configure --enable-optimizations -C --with-openssl=/usr --with-openssl-rpath=auto --prefix=/usr/local/python-3.version
RUN make altinstall
ENV PATH ${PATH}:/usr/local/python-3.version/bin
RUN python3.10 -m pip install pandas
# Make Swig
WORKDIR /
RUN wget https://github.com/swig/swig/archive/refs/tags/v4.0.2.tar.gz
RUN tar xvfz v4.0.2.tar.gz
WORKDIR /swig-4.0.2
RUN chmod x autogen.sh
RUN ./autogen.sh
RUN ./configure
RUN make
RUN make install
WORKDIR /
RUN wget https://github.com/griddb/python_client/archive/refs/tags/0.8.5.tar.gz
RUN tar xvf 0.8.5.tar.gz
WORKDIR /python_client-0.8.5
RUN yum -y install python36 python36-devel
RUN make
ENV PYTHONPATH /python_client-0.8.5
WORKDIR /app
COPY sample2.py /app
COPY time_series_example.py /app
#ENTRYPOINT ["python3.10", "-u", "sample2.py"]
#ENTRYPOINT ["tail"]
#CMD ["-f","/dev/null"]
這是運行griddb示例代碼sample2.py時gdb的輸出
(gdb) run -u sample2.py
Starting program: /usr/local/python-3.version/bin/python3.10 -u sample2.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Missing separate debuginfo for /usr/local/python-3.version/lib/python3.10/site-packages/numpy/core/../../numpy.libs/libgfortran-040039e1.so.5.0.0
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/5b/be74eb6855e0a2c043c0bec2f484bf3e9f14c0.debug
Missing separate debuginfo for /usr/local/python-3.version/lib/python3.10/site-packages/numpy/core/../../numpy.libs/libquadmath-96973f99.so.0.0.0
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/54/9b4c82347785459571c79239872ad31509dcf4.debug
[New Thread 0x7ffff3960700 (LWP 78)]
connected to store
connected to container
Getting store
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff0d3a511 in new_date_ex (year=2022, month=4, day=12, type=<optimized out>) at /Python-3.10.4/Modules/_datetimemodule.c:856
856 self = (PyDateTime_Date *)(type->tp_alloc(type, 0));
Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 glibc-2.17-325.el7_9.x86_64 libffi-3.0.13-19.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc -4.8.5-44.el7.x86_64 nss-softokn-freebl-3.53.1-6.el7_9.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-19.el7_9.x86_64
如果我查詢收集容器,則沒有段錯誤。有任何想法嗎?
uj5u.com熱心網友回復:
查看 docker 檔案,問題可能是因為安裝了 Python 3.6 和 Python 3.10。Python 3.6 用于構建,但 Python 3.10 用于運行示例,如下所示:
- 您安裝 Python 3.10:從源代碼構建 python。然后使用 Python 3.10 安裝 pandas。
- 您安裝 Python 3.6:使用 yum。您不使用 Python 3.6 安裝 pandas。
- 您安裝 Python 客戶端:系統使用 python 3.6 構建 Python 客戶端
- 您使用 Python 3.10 運行 sample2.py。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461724.html
下一篇:獲取帶有引數的np陣列的一部分
