Project

General

Profile

Bug #9994

darktable under valgrind

Added by Pascal Obry about 6 years ago. Updated over 1 year ago.

Status:
Closed: won't fix
Priority:
Low
Assignee:
-
Category:
-
Target version:
-
Start date:
06/22/2014
Due date:
% Done:

0%

Estimated time:
Affected Version:
git development version
System:
other GNU/Linux
bitness:
64-bit
hardware architecture:
amd64/x86

Description

After #9993 I decided to do an export with dt running under valgrind. Some unrecognized instruction during export maybe this will makes sense to someone.

26460 Conditional jump or move depends on uninitialised value(s)
26460 at 0x125DDDCBD: commit_params (denoiseprofile.c:1607)
26460 by 0x4F1C022: dt_iop_init_pipe (imageop.c:417)
26460 by 0x4F29803: dt_dev_pixelpipe_create_nodes (pixelpipe_hb.c:210)
26460 by 0x4EE40EB: dt_imageio_export_with_flags (imageio.c:740)
26460 by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
26460 by 0x131C0CF7C: store (disk.c:264)
26460 by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
26460 by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
26460 by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
26460 by 0x4F0E91A: dt_control_work (jobs.c:276)
26460 by 0x87DB0C9: start_thread (pthread_create.c:312)
26460 by 0xBD8C05C: clone (clone.S:111)
26460
vex amd64->IR: unhandled instruction bytes: 0xC6 0xF8 0xFD 0xF 0xB7 0x6 0x66 0x85
vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE
vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
26460 valgrind: Unrecognised instruction at address 0x87e4310.
26460 at 0x87E4310: __lll_trylock_elision (elision-trylock.c:32)
26460 by 0x87DD58B: pthread_mutex_trylock (pthread_mutex_trylock.c:73)
26460 by 0x4F000CB: dt_opencl_lock_device (opencl.c:807)
26460 by 0x4F2A1EA: dt_dev_pixelpipe_process (pixelpipe_hb.c:2188)
26460 by 0x4EE4DF6: dt_imageio_export_with_flags (imageio.c:823)
26460 by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
26460 by 0x131C0CF7C: store (disk.c:264)
26460 by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
26460 by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
26460 by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
26460 by 0x4F0E91A: dt_control_work (jobs.c:276)
26460 by 0x87DB0C9: start_thread (pthread_create.c:312)
26460 Your program just tried to execute an instruction that Valgrind
26460 did not recognise. There are two possible reasons for this.
26460 1. Your program has a bug and erroneously jumped to a non-code
26460 location. If you are running Memcheck and you just saw a
26460 warning about a bad jump, it's probably your program's fault.
26460 2. The instruction is legitimate but Valgrind doesn't handle it,
26460 i.e. it's Valgrind's fault. If you think this is the case or
26460 you are not sure, please let us know and we'll try to fix it.
26460 Either way, Valgrind will now raise a SIGILL signal which will
26460 probably kill your program.
26460
26460 Process terminating with default action of signal 4 (SIGILL)
26460 Illegal opcode at address 0x87E4310
26460 at 0x87E4310: __lll_trylock_elision (elision-trylock.c:32)
26460 by 0x87DD58B: pthread_mutex_trylock (pthread_mutex_trylock.c:73)
26460 by 0x4F000CB: dt_opencl_lock_device (opencl.c:807)
26460 by 0x4F2A1EA: dt_dev_pixelpipe_process (pixelpipe_hb.c:2188)
26460 by 0x4EE4DF6: dt_imageio_export_with_flags (imageio.c:823)
26460 by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
26460 by 0x131C0CF7C: store (disk.c:264)
26460 by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
26460 by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
26460 by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
26460 by 0x4F0E91A: dt_control_work (jobs.c:276)
26460 by 0x87DB0C9: start_thread (pthread_create.c:312)
26460
26460 HEAP SUMMARY:
26460 in use at exit: 4,631,070,178 bytes in 130,271 blocks
26460 total heap usage: 1,027,057 allocs, 896,786 frees, 9,672,841,516 bytes allocated
26460
26460 LEAK SUMMARY:
26460 definitely lost: 186,207 bytes in 9,007 blocks
26460 indirectly lost: 136,896 bytes in 4,720 blocks
26460 possibly lost: 3,573,466 bytes in 12,133 blocks
26460 still reachable: 4,626,541,057 bytes in 101,643 blocks
26460 suppressed: 0 bytes in 0 blocks
26460 Rerun with --leak-check=full to see details of leaked memory
26460
26460 For counts of detected and suppressed errors, rerun with: -v
26460 Use --track-origins=yes to see where uninitialised values come from
26460 ERROR SUMMARY: 382 errors from 9 contexts (suppressed: 25 from 4)
Killed

History

#1 Updated by Pascal Obry about 6 years ago

For better lisibility:

==26460== Conditional jump or move depends on uninitialised value(s)
==26460==    at 0x125DDDCBB: commit_params (denoiseprofile.c:1607)
==26460==    by 0x4F1C022: dt_iop_init_pipe (imageop.c:417)
==26460==    by 0x4F29803: dt_dev_pixelpipe_create_nodes (pixelpipe_hb.c:210)
==26460==    by 0x4EE40EB: dt_imageio_export_with_flags (imageio.c:740)
==26460==    by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
==26460==    by 0x131C0CF7C: store (disk.c:264)
==26460==    by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
==26460==    by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==26460==    by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
==26460==    by 0x4F0E91A: dt_control_work (jobs.c:276)
==26460==    by 0x87DB0C9: start_thread (pthread_create.c:312)
==26460==    by 0xBD8C05C: clone (clone.S:111)
==26460== 
==26460== Conditional jump or move depends on uninitialised value(s)
==26460==    at 0x125DDDCBD: commit_params (denoiseprofile.c:1607)
==26460==    by 0x4F1C022: dt_iop_init_pipe (imageop.c:417)
==26460==    by 0x4F29803: dt_dev_pixelpipe_create_nodes (pixelpipe_hb.c:210)
==26460==    by 0x4EE40EB: dt_imageio_export_with_flags (imageio.c:740)
==26460==    by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
==26460==    by 0x131C0CF7C: store (disk.c:264)
==26460==    by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
==26460==    by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==26460==    by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
==26460==    by 0x4F0E91A: dt_control_work (jobs.c:276)
==26460==    by 0x87DB0C9: start_thread (pthread_create.c:312)
==26460==    by 0xBD8C05C: clone (clone.S:111)
==26460== 
vex amd64->IR: unhandled instruction bytes: 0xC6 0xF8 0xFD 0xF 0xB7 0x6 0x66 0x85
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==26460== valgrind: Unrecognised instruction at address 0x87e4310.
==26460==    at 0x87E4310: __lll_trylock_elision (elision-trylock.c:32)
==26460==    by 0x87DD58B: pthread_mutex_trylock (pthread_mutex_trylock.c:73)
==26460==    by 0x4F000CB: dt_opencl_lock_device (opencl.c:807)
==26460==    by 0x4F2A1EA: dt_dev_pixelpipe_process (pixelpipe_hb.c:2188)
==26460==    by 0x4EE4DF6: dt_imageio_export_with_flags (imageio.c:823)
==26460==    by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
==26460==    by 0x131C0CF7C: store (disk.c:264)
==26460==    by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
==26460==    by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==26460==    by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
==26460==    by 0x4F0E91A: dt_control_work (jobs.c:276)
==26460==    by 0x87DB0C9: start_thread (pthread_create.c:312)
==26460== Your program just tried to execute an instruction that Valgrind
==26460== did not recognise.  There are two possible reasons for this.
==26460== 1. Your program has a bug and erroneously jumped to a non-code
==26460==    location.  If you are running Memcheck and you just saw a
==26460==    warning about a bad jump, it's probably your program's fault.
==26460== 2. The instruction is legitimate but Valgrind doesn't handle it,
==26460==    i.e. it's Valgrind's fault.  If you think this is the case or
==26460==    you are not sure, please let us know and we'll try to fix it.
==26460== Either way, Valgrind will now raise a SIGILL signal which will
==26460== probably kill your program.
==26460== 
==26460== Process terminating with default action of signal 4 (SIGILL)
==26460==  Illegal opcode at address 0x87E4310
==26460==    at 0x87E4310: __lll_trylock_elision (elision-trylock.c:32)
==26460==    by 0x87DD58B: pthread_mutex_trylock (pthread_mutex_trylock.c:73)
==26460==    by 0x4F000CB: dt_opencl_lock_device (opencl.c:807)
==26460==    by 0x4F2A1EA: dt_dev_pixelpipe_process (pixelpipe_hb.c:2188)
==26460==    by 0x4EE4DF6: dt_imageio_export_with_flags (imageio.c:823)
==26460==    by 0x4EE4FD4: dt_imageio_export (imageio.c:629)
==26460==    by 0x131C0CF7C: store (disk.c:264)
==26460==    by 0x4F11DB7: dt_control_export_job_run._omp_fn.2 (control_jobs.c:935)
==26460==    by 0xBA9A96E: GOMP_parallel (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==26460==    by 0x4F12382: dt_control_export_job_run (control_jobs.c:879)
==26460==    by 0x4F0E91A: dt_control_work (jobs.c:276)
==26460==    by 0x87DB0C9: start_thread (pthread_create.c:312)
==26460== 
==26460== HEAP SUMMARY:
==26460==     in use at exit: 4,631,070,178 bytes in 130,271 blocks
==26460==   total heap usage: 1,027,057 allocs, 896,786 frees, 9,672,841,516 bytes allocated
==26460== 
==26460== LEAK SUMMARY:
==26460==    definitely lost: 186,207 bytes in 9,007 blocks
==26460==    indirectly lost: 136,896 bytes in 4,720 blocks
==26460==      possibly lost: 3,573,466 bytes in 12,133 blocks
==26460==    still reachable: 4,626,541,057 bytes in 101,643 blocks
==26460==         suppressed: 0 bytes in 0 blocks
==26460== Rerun with --leak-check=full to see details of leaked memory
==26460== 
==26460== For counts of detected and suppressed errors, rerun with: -v
==26460== Use --track-origins=yes to see where uninitialised values come from
==26460== ERROR SUMMARY: 382 errors from 9 contexts (suppressed: 25 from 4)
Killed

#2 Updated by Stéphane Gimenez almost 6 years ago

It's not related to your current issue, but to avoid duplicated work, I spotted two problems using valgrind. Here is a patch for them: https://github.com/sgimenez/darktable/tree/uninitialized-memory

#3 Updated by Pascal Obry over 1 year ago

  • Status changed from New to Closed: won't fix

Also available in: Atom PDF

Go to top