madMAx43v3r / chia-plotter

Apache License 2.0
2.27k stars 662 forks source link

Assertion `bitfield_.get(pos) && bitfield_.get(pos + offset)' failed. #732

Open qiang-007 opened 3 years ago

qiang-007 commented 3 years ago

Every time an error is reported after running for a period of time. chia_plot: /home/Jhonlu/desktop/chia-plotter/include/chia/bitfield_index.hpp:45: std::pair<long unsigned int, long unsigned int> bitfield_index::lookup(uint64_t, uint64_t) const: Assertionbitfield.get(pos) && bitfield.get(pos + offset)' failed.`

Jmokkalatte commented 3 years ago

happens for me, too

jussipvainionpaa commented 3 years ago

This started for me as well after upgrading cpu from 3900X to 5950X. Nothing else changed in my setup. I'm now running memtest86 to see if it gives errors.

I'm using 5950X, 128GB 3200MHz CL16 ram (110G ramdisk as temp2) and Samsung 980 PRO as temp1.

I was getting very nice results with about 22 minute plot creation time but I can only make 1 or 2 plots before it fails with this error in Phase 2

qiang-007 commented 3 years ago

This started for me as well after upgrading cpu from 3900X to 5950X. Nothing else changed in my setup. I'm now running memtest86 to see if it gives errors.

I'm using 5950X, 128GB 3200MHz CL16 ram (110G ramdisk as temp2) and Samsung 980 PRO as temp1.

I was getting very nice results with about 22 minute plot creation time but I can only make 1 or 2 plots before it fails with this error in Phase 2

I also got this error in the second phase. My cpu is also 5950x. I really don't understand what went wrong. There is no problem using ssd as the second cache directory. The problem occurs when the memory is used as the second cache directory.

jussipvainionpaa commented 3 years ago

What are your ram settings? I have ram that is rated for 3200MHz but memtest86 found some errors while I was running them at 3200MHz. I dropped it to 3000MHz and the test seems to be going through without any errors now.

I had set timings to 16-20-20-38 and voltage was 1.45v

I'm perfectly fine plotting with 3000MHz vs. 3200MHz if this is going to be stable now. I'll report back when I get the complete results from memtest

jussipvainionpaa commented 3 years ago

RIP now my Ubuntu won't boot anymore... "Uncompression error --System halted" And of course I just burned the memtest image to the usb drive I had my Ubuntu on so can't repair it...

If this doesn't start working soon I'm gonna go back to the 3900X with stable 26-29 minute plots... It ain't worth all this hazzle to cut down a few minutes from the plotting process. Could get more HDDs with the price of 5950X anyway as I'm going to farm for years to come.

qiang-007 commented 3 years ago

What are your ram settings? I have ram that is rated for 3200MHz but memtest86 found some errors while I was running them at 3200MHz. I dropped it to 3000MHz and the test seems to be going through without any errors now.

I had set timings to 16-20-20-38 and voltage was 1.45v

I'm perfectly fine plotting with 3000MHz vs. 3200MHz if this is going to be stable now. I'll report back when I get the complete results from memtest

My now setting is 3600MHZ, 1.39V, 18-19-19-36. Tomorrow I will try to change the parameters to make it more stable. Will it be better to adjust the memory timing a little bit more loosely?

jussipvainionpaa commented 3 years ago

Lowering the MHz definitely made them more stable even though they are rated at 3200MHz.

But I'm using two kits of 64GB Corsair LPX ram which I guess is optimized to be used as 2x32GB set and not 4x32GB.

I'm going to make one more change to my system and that is to switch the ram to this kit which is designed for 4x32GB and they're also optimized for Ryzen processors:

https://www.gskill.com/product/165/326/1582266217/F4-3600C18Q-128GTZN

With Madmax plotter the memory frequency has actually turned out to be my worst bottleneck in plotting time.

jussipvainionpaa commented 3 years ago

Okay here's an update.

I managed to hold 3200MHz with timings of 17-20-20-38 (stixks are rated 16-20-20-38 but with those it crashes).

My voltage is also 1.39v now.

Seems to work well now and plot time is around 23 minutes.

Jmokkalatte commented 3 years ago

I changed the temp1 (also temp2 because no ramdisk) to a new ssd (from the same type) and the error disappeared since then. (5 plots since then but before after 1 plot the error comes up) I also changed in BIOS the TPM to enabled. Have a Ryzen 3700x. I do not know if the TPM thing changed something - i think the ssd was at end of live even the SMART said something different.

qiang-007 commented 3 years ago

I changed the temp1 (also temp2 because no ramdisk) to a new ssd (from the same type) and the error disappeared since then. (5 plots since then but before after 1 plot the error comes up) I also changed in BIOS the TPM to enabled. Have a Ryzen 3700x. I do not know if the TPM thing changed something - i think the ssd was at end of live even the SMART said something different.

I tried several times today and still got an error, and I got an error message when I tested it with TM5. The problem must be in the memory stick, it is estimated that it is a quality problem?

imobe001 commented 3 years ago

So I just started getting this error when I changed from using Windows and switched to Ubuntu on the same PC.

System Specs: Ryzen 5800X 16 GB 3866 MHz Ram (stable in Ramtest) Temp: PCIe Gen 4.0 500 GB drive - formatted to XFS and crc=0 + discards + mounted noatime Farm: 18 TB HDD - formatted XFS OS: Ubuntu Ubuntu 20.04.2 LTS on an External SSD

So ever since I switched from Windows plotting (about 38 minutes per plot) to Ubuntu, I have had nothing but plot failures with the current error: chia_plot: /etc/X11/chia-plotter/include/chia/bitfield_index.hpp:45: std::pair<long unsigned int, long unsigned int> bitfield_index::lookup(uint64_t, uint64t) const: Assertion `bitfield.get(pos) && bitfield_.get(pos + offset)' failed.

I am running the following command (I have tried with 14, 15, and 16 threads): sudo ./chia_plot -n -1 -r 16 -u 256 -t /media/plotter/ -d /media/WD18TB01/ -c poolKey -f farmKey

Any ideas as to what is going on or how to fix this? I really don't want to have to go back to plotting in Windows.

jussipvainionpaa commented 3 years ago

So I just started getting this error when I changed from using Windows and switched to Ubuntu on the same PC.

System Specs: Ryzen 5800X 16 GB 3866 MHz Ram (stable in Ramtest) Temp: PCIe Gen 4.0 500 GB drive - formatted to XFS and crc=0 + discards + mounted noatime Farm: 18 TB HDD - formatted XFS OS: Ubuntu Ubuntu 20.04.2 LTS on an External SSD

So ever since I switched from Windows plotting (about 38 minutes per plot) to Ubuntu, I have had nothing but plot failures with the current error: chia_plot: /etc/X11/chia-plotter/include/chia/bitfield_index.hpp:45: std::pair<long unsigned int, long unsigned int> bitfield_index::lookup(uint64_t, uint64t) const: Assertion `bitfield.get(pos) && bitfield_.get(pos + offset)' failed.

I am running the following command (I have tried with 14, 15, and 16 threads): sudo ./chia_plot -n -1 -r 16 -u 256 -t /media/plotter/ -d /media/WD18TB01/ -c poolKey -f farmKey

Any ideas as to what is going on or how to fix this? I really don't want to have to go back to plotting in Windows.

Try to run -r 8 Also try if you can get past this error by lowering your memory frequency to 3600MHz. If there's no errors with 3600MHz, then try increasing the latency values by 1 when running 3866MHz

bolausson commented 3 years ago

I had the same issue, turning off XMP profile in the BIOS seems to have fixed it.