Open papampi opened 6 years ago
This error doesn't happen on my system, but I will see what I can do. Also, I still don't know where this comes from:
[2018-08-07 18:42:06] NVML GPU monitoring enabled.
0
1
2
[2018-08-07 18:42:06] 3 miner threads started, using 'lyra2v2' algorithm.
I just compiled from latest release. Tried with many intensities and OC settings, Intensity more than 17 start the error as soon as miner starts Lower intensities gives error with delay
Probably I have a similar issue https://github.com/KlausT/ccminer/issues/254
I try neoscrypt with -i 18
Is this also happening if you try this?
ccminer -a lyra2v2 --benchmark
or this
ccminer -a neoscrypt --benchmark
I have just tried mining lyra2v2 with -i 20 for about 10 minutes, but there's no error (Ubuntu 16.04)
@KlausT benchmarking seems working fine, with neoscrypt at least. However, the problem with real mining, no matter what intensity I use
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ccminer 8.22-KlausT (64bit) for nVidia GPUs
Based on pooler cpuminer 2.3.2 and the tpruvot@github fork
CUDA support by Christian Buchner, Christian H. and DJM34
Includes optimizations and additions implemented by sp-hash, tpruvot, tsiv and others.
Compiled with GCC 7.3 using the Nvidia CUDA Toolkit 9.2
[New Thread 0x7fffee58a700 (LWP 26754)]
[New Thread 0x7fffedd89700 (LWP 26755)]
[New Thread 0x7fffed588700 (LWP 26756)]
[2018-08-12 23:31:26] Starting Stratum on stratum+tcp://neoscrypt.mine.zergpool.com:4233
[2018-08-12 23:31:26] NVML GPU monitoring enabled.
[New Thread 0x7fffcffff700 (LWP 26758)]
[New Thread 0x7fffcf7fe700 (LWP 26759)]
0
[2018-08-12 23:31:26] 1 miner thread started, using 'neoscrypt' algorithm.
[2018-08-12 23:31:26] Stratum difficulty set to 256
[2018-08-12 23:31:29] GPU #0: waiting for data
[2018-08-12 23:31:30] Received new neoscrypt block header
[2018-08-12 23:31:30] block height 235062, 1 transactions
[New Thread 0x7fffceffd700 (LWP 26779)]
[New Thread 0x7fffce7fc700 (LWP 26780)]
[2018-08-12 23:31:32] GPU #0: using default intensity 14.000
[2018-08-12 23:31:59] GPU #0: Gigabyte GTX 1060 3GB, 637.46 kH/s
[2018-08-12 23:32:00] Received new neoscrypt block header
[2018-08-12 23:32:00] block height 235062, 1 transactions
[2018-08-12 23:32:00] GPU #0: Gigabyte GTX 1060 3GB, 568.68 kH/s
[2018-08-12 23:32:05] GPU #0: Gigabyte GTX 1060 3GB, 559.30 kH/s
free(): invalid pointer
Thread 3 "ccminer-klaust" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 26755)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x0000555555563cdf in tq_pop(thread_q*, timespec const*) ()
#6 0x000055555555f161 in workio_thread(void*) ()
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
(gdb)
I can't find anything wrong in the code. I have no explanation why it doesn't work for you, but it works for most other people.
I built the miner with debug symbols:
(gdb) run
Starting program: /tmp/ccminer/ccminer -a neoscrypt -o stratum+tcp://neoscrypt.mine.zergpool.com:4233 -u 14Mr664JrxDJyiEyjeKCGwFKAVonAGfuTq -p c=BTC
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ccminer 8.22-KlausT (64bit) for nVidia GPUs
Based on pooler cpuminer 2.3.2 and the tpruvot@github fork
CUDA support by Christian Buchner, Christian H. and DJM34
Includes optimizations and additions implemented by sp-hash, tpruvot, tsiv and others.
Compiled with GCC 7.3 using the Nvidia CUDA Toolkit 9.2
[New Thread 0x7fffee58a700 (LWP 17599)]
[New Thread 0x7fffedd89700 (LWP 17600)]
[New Thread 0x7fffed588700 (LWP 17601)]
[2018-08-14 22:28:53] Starting Stratum on stratum+tcp://neoscrypt.mine.zergpool.com:4233
[2018-08-14 22:28:54] NVML GPU monitoring enabled.
[New Thread 0x7fffcffff700 (LWP 17603)]
[New Thread 0x7fffcf7fe700 (LWP 17604)]
0
[2018-08-14 22:28:54] 1 miner thread started, using 'neoscrypt' algorithm.
[2018-08-14 22:28:54] Stratum difficulty set to 256
[2018-08-14 22:28:57] GPU #0: waiting for data
[2018-08-14 22:28:57] Received new neoscrypt block header
[2018-08-14 22:28:57] block height 236298, 0 transactions
[New Thread 0x7fffceffd700 (LWP 17624)]
[New Thread 0x7fffce7fc700 (LWP 17625)]
[2018-08-14 22:29:00] GPU #0: using default intensity 14.000
[2018-08-14 22:29:27] GPU #0: Gigabyte GTX 1060 3GB, 639.45 kH/s
[2018-08-14 22:29:28] Received new neoscrypt block header
[2018-08-14 22:29:28] block height 236298, 0 transactions
[2018-08-14 22:29:28] GPU #0: Gigabyte GTX 1060 3GB, 569.13 kH/s
[2018-08-14 22:29:37] GPU #0: Gigabyte GTX 1060 3GB, 567.42 kH/s
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 17600)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x0000555555563d3b in tq_pop (tq=0x555555bc1f00, abstime=0x0) at util.cpp:2164
#6 0x000055555555ea48 in workio_thread (userdata=0x555555bc18d8) at ccminer.cpp:1120
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
However, I don't know how to use gdb properly to debug this thing...
I suspect, it doesn't like abstime=0x0
, but I'm not sure at all.
Some more gdb:
[2018-08-14 22:59:05] GPU #0: Gigabyte GTX 1060 3GB, 642.67 kH/s
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 26809)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x000055555556735b in tq_pop (tq=0x555555c5ef00, abstime=0x0) at util.cpp:2164
#6 0x000055555555bad4 in workio_thread (userdata=0x555555c5e8d8) at ccminer.cpp:1120
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
(gdb) frame 5
#5 0x000055555556735b in tq_pop (tq=0x555555c5ef00, abstime=0x0) at util.cpp:2164
2164 free(ent);
(gdb) info locals
ent = 0x7fffcffff6f8
rval = 0x0
rc = 0
(gdb) frame 6
#6 0x000055555555bad4 in workio_thread (userdata=0x555555c5e8d8) at ccminer.cpp:1120
1120 wc = (struct workio_cmd *)tq_pop(mythr->q, NULL);
(gdb) info locals
wc = 0x0
mythr = 0x555555c5e8d8
curl = 0x7fffe0000b20
ok = true
Same thing with lyra2v2:
[2018-08-14 23:13:17] GPU #0: Gigabyte GTX 1060 3GB, 22.17 MH/s
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 29429)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x000055555556735b in tq_pop (tq=0x555555c5ef00, abstime=0x0) at util.cpp:2164
#6 0x000055555555bad4 in workio_thread (userdata=0x555555c5e8d8) at ccminer.cpp:1120
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
(gdb) frame 5
#5 0x000055555556735b in tq_pop (tq=0x555555c5ef00, abstime=0x0) at util.cpp:2164
2164 free(ent);
(gdb) info locals
ent = 0x7fffcffff6f8
rval = 0x0
rc = 0
Sorry for long copy-pastes...
I suspect it has something to do with this: https://github.com/KlausT/ccminer/blob/864551cc9f3a14b1464edde125de971d13ea191c/elist.h#L183 Maybe GCC 7.3 is behaving differently than older versions.
For me it looks like a bit of mess doing some pointer math... As I understand, list_entry
def is used only once in the whole codebase, exactly in tq_pop
function. Maybe you could just inline it there, with explicit clear math and everything?
Yeah. Actually, the whole tq_pop / tq_push thing is a mess. Well, it's historic code that hasn't been changed for a while.
I have made a small change to make it more compatible, but I don't know if it works for you now.
@KlausT thanks a lot! I will try it and report back.
Compiled latest commit and it still has the same problem
ccminer 8.22-KlausT (64bit) for nVidia GPUs
Based on pooler cpuminer 2.3.2 and the tpruvot@github fork
CUDA support by Christian Buchner, Christian H. and DJM34
Includes optimizations and additions implemented by sp-hash, tpruvot, tsiv and others.
Compiled with GCC 5.4 using the Nvidia CUDA Toolkit 9.2
[2018-08-16 13:12:05] Intensity set to 17, 131072 cuda threads
[2018-08-16 13:12:05] Starting Stratum on stratum+tcp://hub.miningpoolhub.com:20510
[2018-08-16 13:12:05] NVML GPU monitoring enabled.
0
[2018-08-16 13:12:05] 3 miner threads started, using 'neoscrypt' algorithm.
2
1
[2018-08-16 13:12:06] Stratum difficulty set to 4096
[2018-08-16 13:12:06] Received new neoscrypt block header
[2018-08-16 13:12:06] block height 2312516, 2 transactions
[2018-08-16 13:12:06] Stratum difficulty set to 305.537
[2018-08-16 13:12:18] Received new neoscrypt block header
[2018-08-16 13:12:18] block height 2312516, 2 transactions
[2018-08-16 13:12:33] GPU #0: ASUS GTX 1070, 982.66 kH/s
[2018-08-16 13:12:35] GPU #2: Gigabyte P106-100, 662.36 kH/s
[2018-08-16 13:12:35] GPU #1: Gigabyte P106-100, 676.44 kH/s
[2018-08-16 13:12:41] GPU #1: Gigabyte P106-100, 652.03 kH/s
*** Error in `/home/m1/Downloads/ccminer-windows/ccminer': free(): invalid pointer: 0x00007f5073a106f8 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f50858617e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f508586a37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f508586e53c]
Downloads/ccminer-windows/ccminer[0x413558]
Downloads/ccminer-windows/ccminer[0x409ac0]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f5086af86ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f50858f141d]
Still fails after the commit:
[2018-08-19 18:05:18] GPU #0: Gigabyte GTX 1060 3GB, 639.62 kH/s
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 7286)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x000055555556735b in tq_pop (tq=0x555555c52f00, abstime=0x0)
at util.cpp:2164
#6 0x000055555555bad4 in workio_thread (userdata=0x555555c528d8)
at ccminer.cpp:1120
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
(gdb) frame 5
#5 0x000055555556735b in tq_pop (tq=0x555555c52f00, abstime=0x0)
at util.cpp:2164
2164 free(ent);
(gdb) info locals
ent = 0x7fffcffff6f8
rval = 0x0
rc = 0
PS. As far as I remember, this started after cuda-9.2 update. Maybe it's related, don't know...
I have no idea what could be wrong.
Maybe it's possible to add some debug prints in the code?
Sometimes it takes a while until I have more ideas what could be wrong :-) I think I have used free() where I should use aligned_free(). Please test the latest commit.
Nope, still fails...
[2018-08-21 23:52:45] GPU #0: Gigabyte GTX 1060 3GB, 569.60 kH/s
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd89700 (LWP 26304)]
0x00007ffff598e0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598e0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598f495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59cf660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d56ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d64ec in ?? () from /lib64/libc.so.6
#5 0x0000555555567299 in tq_pop (tq=0x555555c52ee0, abstime=0x0)
at util.cpp:2168
#6 0x000055555555bad9 in workio_thread (userdata=0x555555c528b8)
at ccminer.cpp:1120
#7 0x00007ffff6a78457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4a23f in clone () from /lib64/libc.so.6
(gdb) frame 5
#5 0x0000555555567299 in tq_pop (tq=0x555555c52ee0, abstime=0x0)
at util.cpp:2168
2168 free(ent);
(gdb) info locals
ent = 0x7fffcffff6f8
rval = 0x0
rc = 0
I have just learned that under Linux there's the environment variable MALLOCCHECK With MALLOCCHECK=3 we will see data about all malloc() and free() calls. I will try this on my machine tomorrow, but since the error doesn't happen on my system I will probably not see anything useful.
I can make an nvOC test image for you and give you ssh access if you want.
Do you see this text when you start ccminer?
Warning! This build may produce wrong results or even crash! Please use the -fno-strict-aliasing compiler option!
Nope, I haven't seen those message You can check the logs I posted.
I still can't see any problem here. Please try the mallocdebug branch. You should see something like this:
I have upgraded to ubuntu 18.04 and now it gives me this error
./configure: line 6266: syntax error near unexpected token `,'
./configure: line 6266: `LIBCURL_CHECK_CONFIG(, 7.15.2, ,'
m1@m1-desktop:~$ apt list --installed | grep "libcurl3"
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libcurl3/bionic,now 7.58.0-2ubuntu2 amd64 [installed]
libcurl3-gnutls/bionic-security,bionic-updates,now 7.58.0-2ubuntu3.2 amd64 [installed,automatic]
Can you send your linux compiled so we test that? Or add compiled executable for debian/ubuntu systems in release section same as windows?
Here's my binary: ccminerbinary.zip Did you use the build.sh script?
I used autogen.sh , configure.sh then build.sh
With your binary it stops with free(): invalid pointer
m1@m1-desktop:~$ /home/m1/NVOC/Dual_Cuda/miners/KTccminer/recommended/ccminer -a neoscrypt -o stratum+tcp://hub.miningpoolhub.com:20510 -u papampi.nv100 -p x
ccminer 8.22-KlausT (64bit) for nVidia GPUs
Based on pooler cpuminer 2.3.2 and the tpruvot@github fork
CUDA support by Christian Buchner, Christian H. and DJM34
Includes optimizations and additions implemented by sp-hash, tpruvot, tsiv and others.
Compiled with GCC 5.4 using the Nvidia CUDA Toolkit 9.2
[2018-08-29 13:22:46] invalid intensity, using default intensity
[2018-08-29 13:22:46] Starting Stratum on stratum+tcp://hub.miningpoolhub.com:20510
[2018-08-29 13:22:46] NVML GPU monitoring enabled.
[2018-08-29 13:22:46] 3 miner threads started, using 'neoscrypt' algorithm.
[2018-08-29 13:22:47] Stratum difficulty set to 4096
[2018-08-29 13:22:47] Received new neoscrypt block header
[2018-08-29 13:22:47] block height 2326719, 2 transactions
[2018-08-29 13:22:47] Stratum difficulty set to 333.017
[2018-08-29 13:22:50] GPU #0: using default intensity 16.250
[2018-08-29 13:22:50] GPU #1: using default intensity 16.250
[2018-08-29 13:22:50] GPU #2: using default intensity 16.250
[2018-08-29 13:23:13] GPU #0: ASUS GTX 1070, 970.76 kH/s
[2018-08-29 13:23:16] GPU #1: Gigabyte P106-100, 665.44 kH/s
[2018-08-29 13:23:16] GPU #2: Gigabyte P106-100, 644.95 kH/s
[2018-08-29 13:23:21] Received new neoscrypt block header
[2018-08-29 13:23:21] block height 2326719, 2 transactions
[2018-08-29 13:23:39] GPU #0: ASUS GTX 1070, 941.05 kH/s
[2018-08-29 13:23:41] GPU #2: Gigabyte P106-100, 630.87 kH/s
[2018-08-29 13:23:41] GPU #1: Gigabyte P106-100, 643.11 kH/s
[2018-08-29 13:23:43] GPU #2: Gigabyte P106-100, 609.75 kH/s
free(): invalid pointer
That's really wierd. The same binary is running just fine on my system (Ubuntu 16.04 LTS) I'm out of ideas
By the way, I have an Intel i5 4570 with 16GB RAM. I don't know if this is relevant.
I tested on i3 with 8gb ram, don't think that's relevant. Leave it be... Let's hope not more people get into this problem, for now it looks like there is only 2.
I will try mallocdebug
branch in a couple of days, as soon as i get access to my pc.
mallocdebug
says this:
[2018-09-03 00:03:12] Received new neoscrypt block header
[2018-09-03 00:03:12] block height 111462, 0 transactions
[2018-09-03 00:03:12] GPU #0: Gigabyte GTX 1060 3GB, 573.93 kH/s
[2018-09-03 00:03:12] GPU #0: Gigabyte GTX 1060 3GB, 574.11 kH/s
[2018-09-03 00:03:12] 0x7fdb04b55250 submit_work calloc(1, sizeof(struct workio_cmd))
[2018-09-03 00:03:12] 0x7fdb0494d5b0 submit_work calloc(1, sizeof(*work_in))
[2018-09-03 00:03:12] 0x7fdb04499490 tq_push calloc(1, sizeof(*ent))
[2018-09-03 00:03:12] 0x7fdb2a6976f8 tq_pop free(ent)
free(): invalid pointer
Aborted
[2018-09-03 00:06:13] GPU #0: Gigabyte GTX 1060 3GB, 564.21 kH/s
[2018-09-03 00:06:13] 0x7fffc0ae3870 submit_work calloc(1, sizeof(struct workio_cmd))
[2018-09-03 00:06:13] 0x7fffc0ae8ef0 submit_work calloc(1, sizeof(*work_in))
[2018-09-03 00:06:13] 0x7fffc04994d0 tq_push calloc(1, sizeof(*ent))
[2018-09-03 00:06:13] 0x7fffcffff6f8 tq_pop free(ent)
free(): invalid pointer
Thread 3 "ccminer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffedd88700 (LWP 8261)]
0x00007ffff598d0ff in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff598d0ff in raise () from /lib64/libc.so.6
#1 0x00007ffff598e495 in abort () from /lib64/libc.so.6
#2 0x00007ffff59ce660 in ?? () from /lib64/libc.so.6
#3 0x00007ffff59d46ea in ?? () from /lib64/libc.so.6
#4 0x00007ffff59d54ec in ?? () from /lib64/libc.so.6
#5 0x00005555555672ca in tq_pop (tq=0x555555c52f00, abstime=0x0)
at util.cpp:2164
#6 0x000055555555bafa in workio_thread (userdata=0x555555c528d8)
at ccminer.cpp:1122
#7 0x00007ffff6a77457 in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff5a4923f in clone () from /lib64/libc.so.6
(gdb) frame 5
#5 0x00005555555672ca in tq_pop (tq=0x555555c52f00, abstime=0x0)
at util.cpp:2164
2164 free(ent);
(gdb) info locals
ent = 0x7fffcffff6f8
rval = 0x0
rc = 0
My ccminer
http://0x0.st/svKb.so (not sure if it works in your system)
This error free(): invalid pointer
appears when cuda of your system is older than the version of ccminer.
Faced with the same error today i have cuda 9.1 and with ccminer 8.22 which is for cuda 9.2 gave me this error,
downgrade to ccminer 8.20 which is for cuda 9.1 working perfect.
Short summary of what I found out: With most Linux distros ccminer is crashing when it finds the first share. In the workio_thread there's a free call with an invalid address. With Windows everything works fine. There's an incompatibility somewhere, but I can't find it. Maybe I could try Ubuntu 20.04 to see if anything has changed.
Good news: It seems to work with Ubuntu 20.04 LTS. Don't ask me why.
Whatever I do I get these errors on 8.22 Tested on lyra2v2 and neoscrypt algos Ubuntu 16.04.5, cuda-9.2