Enabling tiled-display causes segmentation fault on Jetson Orin Nano running sample DS application

Board: Jetson Orin Nano DevKit 8GB
Deepstream: 6.4
Jetpack: 6.1
Docker image: nvcr.io/nvidia/deepstream-l4t:6.4-triton-multiarch

I have a setup as above and I am trying to run deepstream-app sample config from the above docker image.

deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

However I am met with segmentation fault

Runtime commands:
	h: Print this help
	q: Quit

	p: Pause
	r: Resume

NOTE: To expand a source in the 2D tiled display and view object details, left-click on the source.
      To go back to the tiled display, right-click anywhere on the window.


**PERF:  FPS 0 (Avg)	FPS 1 (Avg)	FPS 2 (Avg)	FPS 3 (Avg)	
**PERF:  0.00 (0.00)	0.00 (0.00)	0.00 (0.00)	0.00 (0.00)	
** INFO: <bus_callback:301>: Pipeline ready

WARNING from src_elem: No decoder available for type 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2'.
Debug info: ../gst/playback/gsturidecodebin.c(960): unknown_type_cb (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin3/GstURIDecodeBin:src_elem
WARNING from src_elem: No decoder available for type 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2'.
Debug info: ../gst/playback/gsturidecodebin.c(960): unknown_type_cb (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin2/GstURIDecodeBin:src_elem
WARNING from src_elem: No decoder available for type 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2'.
Debug info: ../gst/playback/gsturidecodebin.c(960): unknown_type_cb (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin0/GstURIDecodeBin:src_elem
WARNING from src_elem: No decoder available for type 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2'.
Debug info: ../gst/playback/gsturidecodebin.c(960): unknown_type_cb (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin1/GstURIDecodeBin:src_elem
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
Opening in BLOCKING MODE 
Opening in BLOCKING MODE 
Opening in BLOCKING MODE 
Opening in BLOCKING MODE 
NvMMLiteOpen : Block : BlockType = 261 
NvMMLiteOpen : Block : BlockType = 261 
NvMMLiteOpen : Block : BlockType = 261 
NvMMLiteOpen : Block : BlockType = 261 
NvMMLiteBlockCreate : Block : BlockType = 261 
NvMMLiteBlockCreate : Block : BlockType = 261 
NvMMLiteBlockCreate : Block : BlockType = 261 
NvMMLiteBlockCreate : Block : BlockType = 261 
** INFO: <bus_callback:287>: Pipeline running

Segmentation fault (core dumped)

If I disable tiled-display in the config, I can run the app successfully with EGL display.

Here are the steps to reproduce.

  1. Get into docker environment
DOCKER_IMG="nvcr.io/nvidia/deepstream-l4t:6.4-triton-multiarch"
MNT_PROJECT_DIR="-v $PWD:/home/work"
FWD_DISPLAY="-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix"
ENV_PLATFORM="JETSON"

xhost +si:localuser:root

docker run -it --rm --runtime nvidia -e PLATFORM=$ENV_PLATFORM \
    --network host \
    $FWD_DISPLAY \
    $MNT_PROJECT_DIR \
    $DOCKER_IMG \
    bash
  1. Inside the docker environment, fix Glib issues, which was mentioned on the release notes of Deepstream 6.4.
apt-get update && apt-get install -y --no-install-recommends python3-dev meson ninja-build libxslt1-dev libpcre2-dev

curl -LO https://download.gnome.org/sources/glib/2.76/glib-2.76.6.tar.xz && \
    tar -xvf glib-2.76.6.tar.xz && \
    cd glib-2.76.6 && \
    meson _build --prefix=/usr --buildtype=release && \
    ninja -C _build && \
    ninja -C _build install && \
    cd .. && rm -rf glib-2.76.6 glib-2.76.6.tar.xz
  1. cd to deepstream config path and run
deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

If you are using Jetpack 6.1, please install the DeepStream 7.1. You can refer to our Jetson model Platform and OS Compatibility. If the compatibility do not match, there maybe some exceptions.