Skip to main content

mxpi_rtspsrc拉流插件运⾏偶现 BUS ERROR:XXX streamming stopped, reason error (-5) 错误

尝试打印Device侧的Tensor、Image内存数据时,发生coredump

问题现象

当Tensor、Image类数据在Device侧时,尝试调用GetData()接口返回指针并打印指针所指向的数据时,出现coredump提示。

原因分析

Device侧地址空间与Host侧地址空间相互独立,Host侧无法直接访问Device侧数据,具体请参见《CANN AscendCL应用软件开发指南 (C&C++)》。

解决方案

请先使用Tensor.ToHost()Image.ToHost(),将Device侧Tensor类或Image类数据转移到Host侧后,再次尝试打印数据操作。

父主题: FAQ

使用mxVersion安装时,出现libpython3.9.so.1.0报错

问题现象

使用命令**./Ascend-mindxsdk-mxvision_{version}_linux-{arch}.run --install**安装版本包时,出现如下报错:

libpython3.9.so.1.0: cannot open shared object file: No such file or directory

原因分析

Python3.9需要的so文件依赖libpython3.9.so.1.0,在编译环境中找不到。

解决方案

将Python安装路径下的libpython3.9.so.1.0对象,复制到“/usr/lib”或“/usr/lib64”下。

父主题: FAQ

mxpi_rtspsrc拉流插件运⾏偶现 BUS ERROR:XXX streamming stopped, reason error (-5) 错误

问题现象

pipeline运行过程中,mxpi_rtspsrc插件报错Internal data stream error XXX streaming stopped, reason error (-5)的错误

原因分析

主要是由于数据源网络连接异常中断、或者是连接时cpu占用较高引起的偶现错误。

解决方案

mxpi_rtspsrc插件具有重连机制,等待30秒会尝试重连,建议等待重连成功即可。

父主题: FAQ

安装7.3.0版本gcc

以下步骤请在root用户下执行。

  1. 下载gcc-7.3.0.tar.gz,下载地址为https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

  2. 安装gcc时候会占用大量临时空间,所以先执行下面的命令清空“/tmp”目录:

    rm -rf /tmp/*
  3. 安装依赖(以CentOS和Ubuntu系统为例)。

    • CentOS执行如下命令安装。

      yum install bzip2
    • Ubuntu执行如下命令安装。

      apt-get install bzip2
  4. 编译安装gcc。

    1. 进入“gcc-7.3.0.tar.gz”源码包所在目录,解压源码包,命令为:

      tar -zxvf gcc-7.3.0.tar.gz
    2. 进入解压后的文件夹,执行如下命令下载gcc依赖包:

      cd gcc-7.3.0
      ./contrib/download_prerequisites

      如果执行上述命令报错,需要执行如下命令在“gcc-7.3.0/”文件夹下下载好以下依赖包:

      wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
      wget http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

      下载好上述依赖包后,重新执行以下命令:

      ./contrib/download_prerequisites

      如果上述命令校验失败,需要确保依赖包为一次性下载成功,无重复下载现象。

    3. 执行配置、编译和安装命令:

      ./configure --enable-languages=c,c++ --disable-multilib --with-system-zlib --prefix=/usr/local/gcc7.3.0
      make -j15 # 通过grep -w processor /proc/cpuinfo|wc -l查看cpu数,示例为15,用户可自行设置相应参数。
      make install

      :::note 说明 其中“--prefix”参数用于指定gcc7.3.0安装路径,用户可自行配置,但注意不要配置为“/usr/local”及“/usr”,因为会与系统使用软件源默认安装的gcc相冲突,导致系统原始gcc编译环境被破坏。示例指定为“/usr/local/gcc7.3.0”。 :::

  5. 配置环境变量(请在实际需要时再进行配置)。

    export LD_LIBRARY_PATH=/usr/local/gcc7.3.0/lib64:${LD_LIBRARY_PATH}
    export CC=/usr/local/gcc7.3.0/bin/gcc
    export CXX=/usr/local/gcc7.3.0/bin/g++
    export PATH=/usr/local/gcc7.3.0/bin:${PATH}

    其中“/usr/local/gcc7.3.0”为4.c中配置的gcc7.3.0安装路径,请根据实际情况替换。

父主题: 附录

Python依赖安装参考

介绍

目前mxVision开发套件包依赖Python 3.9,如环境中未配置Python 3.9,可参考本章节步骤安装依赖(以root用户安装Python 3.9.2为例)。

操作步骤

  1. 安装Python 3.9.2依赖库。

    apt-get install -y build-essential gcc g++ make cmake zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev
  2. 下载Python 3.9.2源码安装包。

    wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
  3. 解压Python 3.9.2安装包。

    tar -xzvf Python-3.9.2.tgz
  4. 编译安装Python 3.9.2。

    cd Python-3.9.2 && ./configure --prefix=/usr/local/python3.9.2 --enable-shared && make -j8 && make install
  5. 拷贝libpython3.9.so.1.0到系统路径。

    cp /usr/local/python3.9.2/lib/libpython3.9.so.1.0 /usr/lib
  6. 设置环境变量。

    export LD_LIBRARY_PATH=/usr/local/python3.9.2/lib:$LD_LIBRARY_PATH
    export PATH=/usr/local/python3.9.2/bin:$PATH

:::note 说明 若源码方式安装完Python 3.9.2后,pip3工具无法使用,请参见源码方式安装完Python 3.9.2后,pip3工具无法使用解决。 :::

父主题: 附录

日志配置文件

日志框架基于glog实现,提供配置文件设置日志基本参数。

日志配置文件(logging.conf)

## MindX SDK configuration file

## Program name
## 项目工程名称,任意指定
program_name=mindx_sdk

## log output directory, create logs directory before use
## 日志输出文件夹,若是绝对路径,则会输出在该绝对路径下,该绝对路径只能设置在用户主目录下。若非绝对路径,则会输出在用户主目录下的/log/mindxsdk 与log_dir的拼接路径下。
log_dir=logs

## log file basefile
## 日志文件名前缀
base_filename=mxsdk.log.

## time to buffer the log in seconds,0 means write to file immediately
## 设置日志输出的周期(以秒为单位),0表示立即输出
logbufsecs=0

## will output to file, where level >= global_level,default is 0
## Log level: -1-debug,0-info
## 输出级别大于等于该数值的日志到文件,默认为0
global_level=0

## will output to stderr, where level >= console_level,default is 2
## Log level: -1-debug,0-info, 1-warn, 2-error, 3-fatal
## 输出级别大于等于该数值的日志到stderr,默认为2
console_level=2

## max log size, unit is MB, max_log_size must be an integer, default is 100. 1 <= value <= 1024
## 日志文件size最大值,单位为MB,max_log_size的值必须为大于等于1的正整数,默认值为100
max_log_size=100

## rotate time of log switch: 7 days(default), 1<= value <= 1000
## 日志文件天数回滚开关:默认值7天
## 日志文件天数回滚基于单一进程进行统计(只统计当前进程的日志);
rotate_day=7

## rotate file number of log switch: 50 (default, For each log level). 1 <= value <= 500
## 日志文件个数回滚开关:默认值50个(日志各个级别)
## 日志文件个数回滚基于单一进程进行统计(只统计当前进程的日志);
## 只有在程序正常退出时,才能保证日志文件的数量和rotate_file_number的值一致,用户异常退出程序时,实际日志数量可能会超过rotate_file_number。
rotate_file_number=50

## frequency of printing each log, frequency value must be an integer, defualt value is 1. 1 <= value <= 10000
## 每条日志的打印频率,参数值必须为整型,默认值为1,参数值填写范围在1~10000之间。
flow_control_frequency=1

父主题: 附录

在线提单