bluecherrydvr / bluecherry-apps-issues

1 stars 0 forks source link

Crash when changing motion detection settings #156

Closed rstanca closed 6 years ago

rstanca commented 6 years ago

Steps to reproduce:

OS: Centos 7.4 Version: Bluecherry 2.8.2

  1. Go to Devices - IP Cameras - click Settings on a camera and then Motion Detection Settings
  2. Change either Pre-event buffer or Post-event buffer to a different setting that the default one
  3. Change Min. motion area% and the server will crash

Dec 12 18:26:21 localhost bc-server[16694]: BUG: Segment violation at 0x00000000000000d8 Dec 12 18:26:21 localhost bc-server[16694]: Call trace: Dec 12 18:26:21 localhost bc-server[16694]: [0x000000000041f9ee] @ /usr/sbin/bc-server Dec 12 18:26:21 localhost bc-server[16694]: [0x00007fc0a481c270] @ /lib64/libc.so.6 Dec 12 18:26:21 localhost bc-server[16694]: [0x00000000004230ec] @ /usr/sbin/bc-server Dec 12 18:26:21 localhost bc-server[16694]: [0x000000000040ce9a] @ /usr/sbin/bc-server Dec 12 18:26:21 localhost bc-server[16694]: [0x000000000040e1b9] @ /usr/sbin/bc-server Dec 12 18:26:21 localhost bc-server[16694]: [0x00007fc0a45d2e25] @ /lib64/libpthread.so.0 Dec 12 18:26:21 localhost bc-server: I: No matching rules Dec 12 18:26:21 localhost bc-server[16694]: [0x00007fc0a48df34d] clone+0x00000000 @ /lib64/libc.so.6

Reference ticket: https://bluecherry.freshdesk.com/helpdesk/tickets/1729

rstanca commented 6 years ago

I was able to reproduce this on Ubuntu too.

Dec 12 19:00:49 dvr bc-server[7652]: I(1/dahua): Applying configuration changes Dec 12 19:00:49 dvr bc-server[7652]: BUG: Segment violation at 0x00000000000000d8 Dec 12 19:00:49 dvr bc-server[7652]: Call trace: Dec 12 19:00:49 dvr bc-server[7652]: [0x000000000041f4f0] @ /usr/sbin/bc-server Dec 12 19:00:49 dvr bc-server[7652]: [0x00007ff0de4164b0] @ /lib/x86_64-linux-gnu/libc.so.6 Dec 12 19:00:49 dvr bc-server[7652]: [0x0000000000422b7c] @ /usr/sbin/bc-server Dec 12 19:00:49 dvr bc-server[7652]: [0x000000000040cb3a] @ /usr/sbin/bc-server Dec 12 19:00:49 dvr bc-server[7652]: [0x000000000040dde9] @ /usr/sbin/bc-server Dec 12 19:00:49 dvr bc-server[7652]: [0x00007ff0de1cb6ba] @ /lib/x86_64-linux-gnu/libpthread.so.0 Dec 12 19:00:49 dvr bc-server[7652]: [0x00007ff0de4e83dd] clone+0x00000000 @ /lib/x86_64-linux-gnu/libc.so.6

antonsviridenko commented 6 years ago
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f7496adb700 (LWP 14679)]
motion_handler::set_buffer_time (this=0x0, pre=3, post=4) at motion_handler.cpp:46
46      motion_handler.cpp: No such file or directory.
(gdb) bt
#0  motion_handler::set_buffer_time (this=0x0, pre=3, post=4) at motion_handler.cpp:46
#1  0x000000000040d1aa in apply_device_cfg (bc_rec=0x2183810) at bc-thread.cpp:651
#2  bc_record::run (this=this@entry=0x2183810) at bc-thread.cpp:157
#3  0x000000000040e4e9 in bc_device_thread (data=0x2183810) at bc-thread.cpp:106
#4  0x00007f749cf85184 in start_thread (arg=0x7f7496adb700) at pthread_create.c:312
#5  0x00007f749d298ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) bt full
#0  motion_handler::set_buffer_time (this=0x0, pre=3, post=4) at motion_handler.cpp:46
No locals.
#1  0x000000000040d1aa in apply_device_cfg (bc_rec=0x2183810) at bc-thread.cpp:651
        current = <optimized out>
        motion_map_changed = <optimized out>
        format_changed = <optimized out>
        ret = <optimized out>
        mrecord_changed = <optimized out>
        update = 0x2183f98
        control_changed = <optimized out>
        debug_changed = <optimized out>
        motion_config_changed = <optimized out>
#2  bc_record::run (this=this@entry=0x2183810) at bc-thread.cpp:157
        local_thread_should_die = <optimized out>
        local_cfg_dirty = <optimized out>
        __clframe = <optimized out>
        packet = {size = 84, flags = 1, pts = -572026323949000, dts = -572026323949000, type = 1, ts_clock = 1513436604, ts_monotonic = 14161, seq = 5525, d = 0x7f748803b9d0}
        ret = <optimized out>
        iteration = 5526
#3  0x000000000040e4e9 in bc_device_thread (data=0x2183810) at bc-thread.cpp:106
        bc_rec = 0x2183810
#4  0x00007f749cf85184 in start_thread (arg=0x7f7496adb700) at pthread_create.c:312
        __res = <optimized out>
        pd = 0x7f7496adb700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140138720900864, -2316120100103431578, 0, 0, 140138720901568, 140138720900864, 2392062661143648870, 2392050196690983526}, mask_was_saved = 0}}, priv = {
            pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#5  0x00007f749d298ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.

motion_handler::set_buffer_time (this=0x0, <<<

antonsviridenko commented 6 years ago

fixed in server version 2.8.3