View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000631 | Cinelerra-GG | [All Projects] Bug | public | 2023-01-30 18:34 | 2023-03-07 17:23 |
Reporter | PhyllisSmith | Assigned To | PhyllisSmith | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000631: Creating a Clip in the Viewer and then using Open EDL on it, crashes | ||||
Description | As discovered by Stefan, using Open EDL with a clip created in the Viewer will crash Cinelerra with: signal_entry: got SIGFPE my pid=10040 execution table size=0: signal_entry: lock table size=31 0x7f850b0 VIconThread::draw_lock, VIconThread::run 0 0x7f96bffff700 0x8aefb20 CWindowTool::input_lock, CWindowTool::run 0x7f962effd700 0x8c27e50 BC_DialogThread::active_lock, BC_DialogThread::run 0x7f962dffb700 * 0x9148f70 RecordSetChannel::change_channel, (null) 0x7f9502ffd700 0x93469a0 SWindow::swin_lock, (null) 0x7f9501ffb700 0x93464b0 ChannelInfo::scan_lock, (null) 0x7f95027fc700 0x6eb3ec0 MWindow::run_lock, MWindow::run 0x7f97620bcd00 * 0x6eb4730 BC_Synchronous::next_command, BC_Synchronous::run 0x7f973dffb700 0x8ec54d0 ResourceThreadBase::draw_lock, ResourceThreadBase::run 0x7f95667fc700 0x8ec5820 ResourceThreadBase::draw_lock, ResourceThreadBase::run 0x7f9565ffb700 0x8c21640 PlaybackEngine::output_lock, PlaybackEngine::run 0x7f962e7fc700 0x7f962426e000 PlaybackEngine::output_lock, PlaybackEngine::run 0x7f95ecff9700 0x7f9718006a90 BC_Xfer::Slicer::init, Slicer::run 0x7f94defc5700 0x7f97180066e0 BC_Xfer::Slicer::init, Slicer::run 0x7f94df7c6700 0x7f9718006550 BC_Xfer::Slicer::init, Slicer::run 0x7f9734ff9700 0x934b260 BC_Repeater::pause_lock, BC_Repeater::run 0x7f95017fa700 0x7f97620bcd00 0x9553e90 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f973f7fe700 0x8896450 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f97377fe700 0x934d4b0 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f974c8c9700 0x8c29ec0 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f97620bcd00 0x7f9624002cc0 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f962dffb700 0x8ec77c0 BC_WindowBase::event_condition, BC_WindowBase::get_event 0x7f9510ff9700 0x8c280e8 Cinelerra: test2.xml, MWindow::stack_push 0x7f96e7fff700 * 0x954e500 MainIndexes::input_lock, MainIndexes::run 1 0x7f94f17ea700 lock_items: 24 lock_frees: 7 SigHandler::signal_handler total files=0 Aborted (core dumped) | ||||
Steps To Reproduce | The steps to test are: 1. Load the videos 2. Load a Video from Resources window to the Viewer 3. In the Viewer set In-Point and Out-Point 4. In the Viewer click on "To Clip" icon or using "i" shortcut: the Clip is created in the Resources->Clip folder 5. In the Resources-> Clip folder, RMB on that clip and choose "OpenEDL" option. It doesn't matter what container/codec the video is. | ||||
Additional Information | Open EDL not designed to work from the Viewer. It needs the video to be on the timeline main program window in order to keep track of levels. A solution would be only to prevent a Crash and notify the user of not intended to be used from the viewer. | ||||
Tags | No tags attached. | ||||
February 28 release fixed the crash. One newly discovered side affect of the fix is that if before this bug fix, you did an OpenEDL on a clip from the Viewer without doing anything else (so it never had a chance to crash), your $HOME/.bcast5/Cinelerra_rc would have ZOOMY set to 0 (zero) instead of 64. In addition, the backup.xml (or any saved .xml file) would have ZOOMY set to 0 instead of 64. Then the next time you loaded any video or the xml file, the audio tracks would not show the waveform. Solution is to carefully edit the xml file and/or Cinelerra_rc file to change the value of ZOOMY to 64. Only 1 user was probably affected by this because using OpenEDL on a clip from the Viewer was not designed in originally. BUT it does work correctly now. |
|
@Andrew-R Broken specifically with the commit of 05/14/2020 fbdd13b462256ed4f3b35dc114385fe0b0de0dcd when adding audio/video track height size adjustment in the patchbay. I did test this too and compared before and after patch to see if I could find any anomalies and did not. I will mark this resolved after the end of the month new release. |
|
@Andrew-R @Andrea_Paz I checked Andrew's fix into GIT this morning after testing a few things like: OpenEDL clip from Viewer and Timeline, Proxies, Compositor window preview small area, and Resources window preview popups. It definitely fixes the original crash. And it makes sense as I look at previous versions of localsession.C, I found around April/May 2020 the zoom_track was augmented by adding zoom_atrack and zoom_vtrack. At that time, a line existed that read: if( zoom_track == 0 ) zoom_track = 64; zoom_atrack = defaults->get("ZOOM_ATRACK", zoom_track); zoom_vtrack = defaults->get("ZOOM_VTRACK", zoom_track); This looks like it would have prevented zoom_atrack and zoom_vtrack from ever being zero. But later the 64 was switched to DEFAULT_ZOOM_TRACK which could be 0. |
|
With the latest patch, audio tracks also work fine for me. | |
@Andrew-R LOOKING GOOD !! so far. Continuing to test while upgrading other laptop to Fedora 37. |
|
new attempt at fix, I think I inited some values in localsession to wrong defaults ...
0001-Default-atrack-vtrack-to-64-in-localsession.patch (828 bytes)
From af4ba70d3a3770cac0a4791672da99fa5b4eed5c Mon Sep 17 00:00:00 2001 From: Andrew Randrianasulu <[email protected]> Date: Sun, 5 Feb 2023 00:22:36 +0300 Subject: [PATCH] Default atrack/vtrack to 64 in localsession --- cinelerra-5.1/cinelerra/localsession.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cinelerra-5.1/cinelerra/localsession.C b/cinelerra-5.1/cinelerra/localsession.C index 96e0894b..c8428abd 100644 --- a/cinelerra-5.1/cinelerra/localsession.C +++ b/cinelerra-5.1/cinelerra/localsession.C @@ -74,8 +74,8 @@ LocalSession::LocalSession(EDL *edl) preview_start = 0; preview_end = -1; zoom_sample = DEFAULT_ZOOM_TIME; zoom_y = 0; - zoom_atrack = 0; - zoom_vtrack = 0; + zoom_atrack = 64; + zoom_vtrack = 64; x_pane = y_pane = -1; gang_tracks = GANG_NONE; -- 2.39.1 |
|
@PhyllisSmith yes I see. But was it working at some point? May be we better to look at why viewer clip produces such strange edl (internally)? I'll look into this ... |
|
@Andrew-R With 0001-Fix-SIGFPE-if-openEDL-used-on-viewer-clip.patch patch in, I still have got a crash in 1 case that I am not sure how I did it. Lots more testing necessary. But you can see in this capture, that the video and audio streams no longer show when open edl on the viewer clip. https://streamable.com/7bdogm (only available for 1 day supposedly) Steps: 1) load/replace video with audio 2) clip small section on timeline 3) in resources window, open view on the loaded media 4) clip small section in viewer 5) open edl on the timeline clip in Resources Window, clip folder 6) pop the level back to 0 7) open edl on the viewer clip in Resource window, clip folder 8) note how it changes size in patchbay and then when you increase the size for video and audio, you can not see the video or audio stream |
|
I'm sorry, Andrew. With your patch, OpenEDL works with all the media I tested, with or without audio. | |
@Andrea_Paz, you forgot to apply vulkan disable patch .... | |
I confirm the crash if audio is present. I tried to compile with the patch but I get a crash. I attach cin5.log. cin5.tar.gz (350,238 bytes) |
|
@Andrea_Paz @Andrew-R Andrea has provided a GOOD CLUE because it did not crash for him. His and now my test seems to show it does not crash even without the patch as long as there is NO AUDIO in the video file that is brought up in the Viewer. |
|
Even without patches I don't have crashes. https://streamable.com/lmdpx9 |
|
this one should be a bit better ? I think cingg also has no protection from VTRACK_zoom set to 0 (so I removed erroneous entries manually in Cinelerra_rc)
0001-Fix-SIGFPE-if-openEDL-used-on-viewer-clip.patch (2,306 bytes)
From 48aca93ffeb5a9884ea4ccbb1f0710c1bae05b6a Mon Sep 17 00:00:00 2001 From: Andrew Randrianasulu <[email protected]> Date: Thu, 2 Feb 2023 14:50:32 +0300 Subject: [PATCH] Fix SIGFPE if openEDL used on viewer clip --- cinelerra-5.1/cinelerra/indexfile.C | 2 +- cinelerra-5.1/cinelerra/resourcepixmap.C | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 885495ed..1ce55cad 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -751,7 +751,7 @@ SET_TRACE int prev_y2 = center_pixel; int first_frame = 1; int zoom_y = mwindow->edl->local_session->zoom_y * data_h / - mwindow->edl->local_session->zoom_atrack; + (mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64) ; if( !rect_audio ) zoom_y /= 2; int max_y = center_pixel + zoom_y - 1; edit_position = (x + pixmap->pixmap_x - virtual_edit_x) * project_zoom; diff --git a/cinelerra-5.1/cinelerra/resourcepixmap.C b/cinelerra-5.1/cinelerra/resourcepixmap.C index 5b5a12f8..91950400 100644 --- a/cinelerra-5.1/cinelerra/resourcepixmap.C +++ b/cinelerra-5.1/cinelerra/resourcepixmap.C @@ -418,7 +418,7 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i int rect_audio = mwindow->preferences->rectify_audio; int data_h = edit->track->data_h; int zoom_y = mwindow->edl->local_session->zoom_y * data_h / - mwindow->edl->local_session->zoom_atrack; + (mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64); int64_t scale_y = !rect_audio ? zoom_y : zoom_y*2; int y_max = center_pixel + scale_y / 2 - 1; @@ -595,7 +595,7 @@ void ResourcePixmap::draw_wave(TrackCanvas *canvas, mwindow->theme->get_image("title_bg_data")->get_h(); int center_pixel = !rect_audio ? data_h/2 + top_pixel : data_h + top_pixel; int zoom_y = mwindow->edl->local_session->zoom_y * (int64_t)data_h / - mwindow->edl->local_session->zoom_atrack; + (mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64) ; int scale_y = !rect_audio ? zoom_y/2 : zoom_y; int bottom_pixel = top_pixel + data_h; int y1 = (int)(center_pixel - low * scale_y); -- 2.30.4 |
|
ah, no no no, this one breaks normal loading with same sigfpe in different part of cin.... | |
diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 885495ed..c92072f0 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -750,8 +750,11 @@ SET_TRACE int prev_y1 = center_pixel; int prev_y2 = center_pixel; int first_frame = 1; - int zoom_y = mwindow->edl->local_session->zoom_y * data_h / - mwindow->edl->local_session->zoom_atrack; + int azoom = mwindow->edl->local_session->zoom_atrack; + int zoom_y = 0; + if(azoom >0) + zoom_y = mwindow->edl->local_session->zoom_y * data_h / + azoom; if( !rect_audio ) zoom_y /= 2; int max_y = center_pixel + zoom_y - 1; edit_position = (x + pixmap->pixmap_x - virtual_edit_x) * project_zoom; patch like this prevent crash, but need much more testing .... (just playing around for now) |
|
So, it seems to file in divide function in libc called by by indexfile.c: #0 0xf50950d3 in __divdi3 () at /usr/lib/libgcc_s.so.1 0000001 0x084a1fbb in IndexFile::draw_index(TrackCanvas*, ResourcePixmap*, Edit*, int, int) (this=<optimized out>, canvas=<optimized out>, pixmap=<optimized out>, edit=<optimized out>, x=<optimized out>, w=<optimized out>) at indexfile.C:753
gdb.txt (5,895 bytes)
#0 0xf50950d3 in __divdi3 () at /usr/lib/libgcc_s.so.1 #1 0x084a1fbb in IndexFile::draw_index(TrackCanvas*, ResourcePixmap*, Edit*, int, int) (this=<optimized out>, canvas=<optimized out>, pixmap=<optimized out>, edit=<optimized out>, x=<optimized out>, w=<optimized out>) at indexfile.C:753 index_state = <optimized out> pane_number = <optimized out> virtual_edit_x = <optimized out> speed_autos = <optimized out> project_zoom = <optimized out> edit_position = <optimized out> start_position = <optimized out> end_position = <optimized out> session_sample_rate = <optimized out> asset_over_session = <optimized out> start_source = <optimized out> start_index = <optimized out> end_source = <optimized out> end_index = <optimized out> size_index = <optimized out> buffer = 0xca19d760 buffer_shared = 0 rect_audio = <optimized out> data_h = <optimized out> center_pixel = <optimized out> prev_y1 = 18 prev_y2 = 18 first_frame = 1 zoom_y = <optimized out> max_y = <optimized out> speed_position = <optimized out> source_position = <optimized out> index_position = <optimized out> i = <optimized out> #2 0x0857b0af in ResourcePixmap::draw_audio_resource(TrackCanvas*, Edit*, int, int) (this=0xca1868c0, canvas=0xa3ee900, edit=0xc34c0560, x=0, w=65) at resourcepixmap.C:386 indexfile = {mwindow = 0xffffc63c, index_filename = "/home/guest/.bcast5/home_admin_Dancing-with-sound-2_mp4.idx\000 \000\000\000\\�;���\030\n\000\020\000\000\000\000\000\000\000\000\000\000\060�\177�\001\000\000\000T�\177�\021\000\000\000\000`<�\024�\177�0�\030\n��;�\003\000\000\000]\000\000\000\b�\177�+5��H\000\000\000\035\000\000\000)6���\000p��\035\000\000\000��\177�\000\000\000\000<�;�\000���\000���7��\035\000\000\000��\177�\005�;�<\030;�\a\000\000\000"..., source_filename = "home_admin_Dancing-with-sound-2_mp4\000\n\000\000\000A\000\000\000\033\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\n\000\000\000\177\017\177\003Dancing-with-sound-2.mp4 #1\000\\�;���\030\n\000\020\000\000\000\000\000\000\000\000\000\000P�\177�\001\000\000\000t�\177�\021\000\000\000\000`<�4�\177�0�\030\n��;�\003\000\000\000D�\177�0�\030\n\\�;�\003\000\000\000\000���\000���\\�;�\000p�� \000\000\000��\030\nr6��\030\n"..., indexable = 0xce2eba00, redraw_timer = 0xca183c60, fd = 0xca66ed80, source = 0x0, render_engine = 0x0, cache = 0x0, source_length = 5347478, source_channels = 2, source_samplerate = 44100, file_length = 2674442, interrupt_flag = 0} indexable = <optimized out> index_state = <optimized out> asset_over_session = <optimized out> #3 0x085b2be5 in TrackCanvas::draw_resources(int, int, Indexable*) (this=0xa3ee900, mode=1, indexes_only=0, indexable=0x0) at trackcanvas.C:1527 pixmap = 0xca1868c0 pixmap_x = 0 pixmap_w = 65 pixmap_h = 18 edit_x = 0 edit_y = 23 edit_w = 65 edit_h = 18 edit = <optimized out> track_y = 0 track_w = 65 x2 = <optimized out> y1 = <optimized out> track_x = 18 track_h = 18 x1 = <optimized out> current = 0xda468310 #4 0x085c3a81 in TrackCanvas::draw(int, int) (this=0xa3ee900, mode=1, hide_cursor=0) at trackcanvas.C:1382 #5 0x085c3db4 in TrackCanvas::resize_event() (this=0xa3ee900) at trackcanvas.C:156 #6 0x085af495 in TimelinePane::resize_event(int, int, int, int) (this=<optimized out>, x=0, y=52, w=1431, h=418) at timelinepane.C:245 #7 0x084f37ec in MWindowGUI::load_panes() (this=0xa187160) at mwindowgui.C:2228 need_x_panes = <optimized out> need_y_panes = <optimized out> cursor_x = -1 cursor_y = <optimized out> #8 0x08501500 in MWindow::update_project(int) (this=0xffffc63c, load_mode=1) at mwindow.C:3974 track = <optimized out> #9 0x08505638 in MWindow::stack_push(EDL*, Indexable*) (this=0xffffc63c, new_edl=0xc3405010, idxbl=0x0) at mwindow.C:4088 item = <optimized out> got_indexes = <optimized out> #10 0x083f319e in ClipPopupOpenEDL::handle_event() (this=0x9e77b60) at clippopup.C:467 clip = <optimized out> clips_total = <optimized out> #11 ClipPopupOpenEDL::handle_event() (this=0x9e77b60) at clippopup.C:461 clips_total = <optimized out> #12 0x0866ee6e in BC_MenuItem::dispatch_button_release(int&) (this=0x9e77b60, [email protected]: 0) at bcmenuitem.C:223 cursor_x = 75 cursor_y = 78 len = <optimized out> result = <optimized out> #13 0x08670294 in BC_MenuPopup::dispatch_button_release() (this=0x9e781d0) at bcmenupopup.C:171 item = <optimized out> i = <optimized out> result = 0 redraw = 0 #14 0x08676b31 in BC_PopupMenu::button_release_event() (this=0x9e78980) at bcpopupmenu.C:407 result = 0 #15 0x08699278 in BC_WindowBase::dispatch_button_release() (this=0x991a5f0) at bcwindowbase.C:1637 result = <optimized out> #16 0x086a1b49 in BC_WindowBase::dispatch_event() (this=0x991a5f0) at bcwindowbase.C:1079 tempwin = 18920981 result = <optimized out> ptr = <optimized out> cancel_resize = <optimized out> cancel_translation = <optimized out> debug = 0 event = 0xc65f9cd0 #17 0x086a2421 in BC_WindowBase::run_window() (this=0x991a5f0) at bcwindowbase.C:744 #18 0x083ba683 in AWindow::run() (this=0x98fd3f0) at awindow.C:94 #19 0x086b0fb3 in Thread::entrypoint(void*) (parameters=0x98fd3f0) at thread.C:70 thread = 0x98fd3f0 #20 0xf53af328 in start_thread () at /lib/libpthread.so.0 #21 0xf4d45f06 in clone () at /lib/libc.so.6 |
|
@Andrew-R You got very interesting results. I will try to see if I can get gdb working again. It broke for me awhile back. |
|
for me on termux/aarch64 it does not crash, but instead create timeline without small preview frames. Can anyone get gdb log out of this crash? |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2023-01-30 18:34 | PhyllisSmith | New Issue | |
2023-01-30 18:35 | PhyllisSmith | Additional Information Updated | View Revisions |
2023-01-31 11:16 | Andrew-R | Note Added: 0005383 | |
2023-02-01 00:10 | PhyllisSmith | Note Added: 0005384 | |
2023-02-02 10:56 | Andrew-R | File Added: gdb.txt | |
2023-02-02 10:56 | Andrew-R | Note Added: 0005387 | |
2023-02-02 11:04 | Andrew-R | Note Added: 0005388 | |
2023-02-02 11:10 | Andrew-R | Note Added: 0005389 | |
2023-02-02 11:56 | Andrew-R | File Added: 0001-Fix-SIGFPE-if-openEDL-used-on-viewer-clip.patch | |
2023-02-02 11:56 | Andrew-R | Note Added: 0005390 | |
2023-02-03 08:58 | Andrea_Paz | Note Added: 0005392 | |
2023-02-03 17:55 | PhyllisSmith | Note Added: 0005396 | |
2023-02-03 18:04 | PhyllisSmith | Assigned To | => PhyllisSmith |
2023-02-03 18:04 | PhyllisSmith | Status | new => confirmed |
2023-02-03 22:09 | Andrea_Paz | File Added: cin5.tar.gz | |
2023-02-03 22:09 | Andrea_Paz | Note Added: 0005404 | |
2023-02-03 22:49 | Andrew-R | Note Added: 0005405 | |
2023-02-04 09:26 | Andrea_Paz | Note Added: 0005406 | |
2023-02-04 17:06 | PhyllisSmith | Note Added: 0005411 | |
2023-02-04 19:55 | Andrew-R | Note Added: 0005417 | |
2023-02-04 21:26 | Andrew-R | File Added: 0001-Default-atrack-vtrack-to-64-in-localsession.patch | |
2023-02-04 21:26 | Andrew-R | Note Added: 0005418 | |
2023-02-04 22:28 | PhyllisSmith | Note Added: 0005419 | |
2023-02-05 20:46 | Andrea_Paz | Note Added: 0005424 | |
2023-02-15 18:34 | PhyllisSmith | Note Added: 0005448 | |
2023-02-15 19:38 | PhyllisSmith | Note Added: 0005449 | |
2023-02-15 20:04 | PhyllisSmith | Note Edited: 0005449 | View Revisions |
2023-03-07 17:23 | PhyllisSmith | Status | confirmed => closed |
2023-03-07 17:23 | PhyllisSmith | Resolution | open => fixed |
2023-03-07 17:23 | PhyllisSmith | Note Added: 0005464 |