nicehash / sgminer-gm

A multi-algo GPU miner from genesismining
GNU General Public License v3.0
31 stars 34 forks source link

Segfault upon setting intensity #7

Open AdamNiederer opened 7 years ago

AdamNiederer commented 7 years ago

System: Arch Linux x86-64, opencl-mesa (1.1), R9 280,

Whitespace in my tree is a little dirty, so line numbers might not match exactly. It segfaults reliably on master as well. I can't reproduce the issue on Windows, so I think it might be something more than just a double-free.

Here's a GDB backtrace and some preliminary investigation; I'll leave a reply if I have time to dig further:

*** Error in `/home/adam/Programs/sgminer/sgminer': double free or corruption (fasttop): 0x00000001003f4910 ***
[snip enormous backtrace]
(gdb) bt
#0  0x00007f64332098c0 in raise () from /usr/lib/libc.so.6
#1  0x00007f643320af72 in abort () from /usr/lib/libc.so.6
#2  0x00007f6433248be2 in __libc_message () from /usr/lib/libc.so.6
#3  0x00007f643324f2ec in malloc_printerr () from /usr/lib/libc.so.6
#4  0x00007f64332506d1 in _int_free () from /usr/lib/libc.so.6
#5  0x0000000100054fc1 in update_config_intensity (profile=0x1003f36d0)
    at config_parser.c:2061
#6  0x00000001000453bc in manage_gpu () at driver-opencl.c:888
#7  0x000000010001bb44 in input_thread (userdata=0x10049f9c8) at sgminer.c:4805
#8  0x00007f6433583049 in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007f64332c3f0f in clone () from /usr/lib/libc.so.6
(gdb) up
#1  0x00007f643320af72 in abort () from /usr/lib/libc.so.6
(gdb) up
#2  0x00007f6433248be2 in __libc_message () from /usr/lib/libc.so.6
(gdb) up
#3  0x00007f643324f2ec in malloc_printerr () from /usr/lib/libc.so.6
(gdb) up
#4  0x00007f64332506d1 in _int_free () from /usr/lib/libc.so.6
(gdb) up
#5  0x0000000100054fc1 in update_config_intensity (profile=0x1003f36d0)
    at config_parser.c:2061
2061          free(default_profile.intensity);
(gdb) print default_profile
$1 = {profile_no = 0, name = 0x1003f4750 "scrypt", removed = false, algorithm = {
    name = "ckolivas", '\000' <repeats 11 times>, type = ALGO_SCRYPT, 
    kernelfile = 0x10015ef90 "", n = 1024, nfactor = 10 '\n', diff_multiplier1 = 1, 
    diff_multiplier2 = 65536, share_diff_multiplier = 65536, xintensity_shift = 0, 
    intensity_shift = 0, found_idx = 255, diff_numerator = 4294967295, diff1targ = 65535, 
    n_extra_kernels = 0, rw_buffer_size = -1, cq_properties = 1, 
    regenhash = 0x10005babb <scrypt_regenhash>, 
    queue_kernel = 0x10004bae3 <queue_scrypt_kernel>, gen_hash = 0x10004b5b9 <gen_hash>, 
    set_compile_options = 0x10004b676 <append_scrypt_compiler_options>}, 
  devices = 0x100505220 "all", intensity = 0x1003f4910 "\300lM", xintensity = 0x1003ec960 "", 
  rawintensity = 0x1003ec980 "", lookup_gap = 0x1003f4870 "2", gpu_engine = 0x0, 
  gpu_memclock = 0x0, gpu_threads = 0x0, gpu_fan = 0x0, gpu_powertune = 0x0, gpu_vddc = 0x0, 
  shaders = 0x0, thread_concurrency = 0x0, worksize = 0x0}
(gdb) print default_profile.intensity
$2 = 0x1003f4910 "\300lM"
(gdb) print profile->intensity
$3 = 0x7f640c000ad0 "d"
(gdb) print default_profile.intensity
$4 = 0x1003f4910 "\300lM"
elisaado commented 6 years ago

Same here.