Creepsky / creepMiner

Burstcoin C++ CPU and GPU Miner
GNU General Public License v3.0
171 stars 64 forks source link

creepMiner-1.8.1.0-Darwin.tar.gz lib issue #403

Open robwoodgate opened 6 years ago

robwoodgate commented 6 years ago

Subject of the issue

The above version of creepminer will not start on MacOSX.. unless the contents of the lib folder are copied back one level to the main folder (where creepminer file is)

Also, this version is VERY slow at reading the plots compared to previous version (same config, CPU/SSE2)

Your environment

MacOSX 10.14.4 - High Sierra creepminer 1.8.1.0

Steps to reproduce

Download, add config file, run... error: dyld: Library not loaded: libPocoMongoDB.60.dylib

Copy files from ./lib subfolder back to main folder = works.

But plot reads are 1/10th speed of previous version with same config

Creepsky commented 6 years ago

There is a run.sh inside the bin dir, have you tried running it? It loads the libs from the lib folder before starting the binary.

What version were you using before?

robwoodgate commented 6 years ago

Hi Creepsky - the run.sh will not run, regardless of whether lib files are in the lib folder or in main.

Creepminer exits as above if lib subfolder is in place... and exits with following error if the lib files are copied to main folder:

"Aborting program due to exceptional state: collate_byname::collate_byname failed to construct for"

It will ONLY run if the main creepminer file is called, and lib files are in main folder.

Previously, I was running commit 34f46221a64fd654202d24492e94f26e4e06547f from development branch

wajimito commented 6 years ago

I have the same issue : Library not loaded: libPocoMongoDB.60.dylib. I tried ./creepMiner as well as ./run.sh. The previous version - 1.8.0 - is working for me. macOS 10.12.6 (Sierra).

If I copy libPocoMongoDB* to parent folder then I see this: Referenced from: /Users/**/creepMiner-1.8.1.0/./creepMiner Reason: image not found ./run.sh: line 6: 13894 Abort trap: 6 ./creepMiner

nitr8 commented 6 years ago

guys guys guys....

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib:/usr/local/lib:$(pwd):$(pwd)/../lib

make sure your lib location is correct from the run.sh and creepMiner so for example if you have /miner/creepMiner <-- folder and in that you have run.sh and creepMiner bin and the libs

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib:/usr/local/lib:$(pwd):$(pwd)/lib

robwoodgate commented 6 years ago

@nitr8 - I did, before raising issue... sadly not such a trivial fix.

robwoodgate commented 6 years ago

The locale selection in run.sh is also problematic... it looks like C.UTF-8 is Debian specific. Running locale -a shows there isn't a C.UTF-8 on my mac.

Changing line 4 to en_US.UTF-8 works:

export LC_ALL=en_US.UTF-8

nitr8 commented 6 years ago

are you using precompiled or compiling yourself? On 3 macOS miners, I have no issues but I also dont user run.sh on them purely calling the bin direct via startup scripts e.g. cd /home/user/projects/creepMiner/bin && ./creepminer

robwoodgate commented 6 years ago

I was using self-compiled previously, but thought I'd try the pre-compiled update for POC2 compatibility.

I currently have pre-compiled 1.7.18.0 chugging away happily, with lib files moved back to same directory as ./creepMiner and running executable directly.

However, @Creepsky asked if I'd tried running the ./run.sh script - so I explored that, and in the interests of making creepMiner easy to use for people who can't compile etc, I thought it prudent to highlight the two issues I found.

nitr8 commented 6 years ago

@robwoodgate

can you try my precompiled build please - https://pool.creepminer.net/static/creepMiner-1.9.0.2-macOS.tar.gz

This should work with ./run.sh

robwoodgate commented 6 years ago

@nitr8 - it also fails to start because of missing library.

$ ./creepMiner dyld: Library not loaded: libPocoMongoDB.60.dylib Referenced from: /Volumes/Macintosh HD/Users/xxx/Downloads/creepMiner/./creepMiner Reason: image not found Abort trap: 6

Moving the lib files back allows the executable to run (either directly or via run.sh) but it then throws this error (presumably because it was compiled on your system - I replaced your username with xxx:

10:10:56: Could not get the number of won block: Not found: Host 10:10:56: Could not load the last winner: Not found: Host 10:10:56: Stackframe 10:10:56: BlockData::runGetWonBlocks (in "/Users/xxx/projects/creepMiner/src/mining/MinerData.cpp", line 821) 10:10:56: Stackframe 10:10:56: BlockData::DataLoader::runGetLastWinner (in "/Users/xxx/projects/creepMiner/src/mining/MinerData.cpp", line 144)

robwoodgate commented 6 years ago

Been doing some testing, so just to clarify...

The latest development build (v1.9.0.15) compiles and runs using run.sh or executable IF the /lib files are moved back to same level as ./creepMiner executable.

Using a 'clean' mining config (ie running creepMiner to create a default config and then updating it with pool/plot info) cures the insane slowness issue I was seeing (was previously copying old config over). So all good there.

This latest version does complain about the won blocks / last winner not being found, as mentioned above... but then my old version never had a database, so I guess it's just failing to read null values in my new empty database or something.

More worryingly, this latest version also seems to be throwing errors about deadlines exceeding those of the pool, when they are in fact ok:

11:53:25: --------------------------------------------------
11:53:25: got new target deadline from pool
11:53:25: old pool target deadline:     00:00:00
11:53:25: new pool target deadline:     1y 0m 5d 00:00:00
11:53:25: --------------------------------------------------
...
11:53:32: XXXX-XXXX-XXXX-XXXX: error on submitting nonce! (16d 20:48:43)                                                                                                                                                                 
11:53:32:   nonce:        587356
11:53:32:   in:           /path/to/plot/file
11:53:32:   from:         127.0.0.1
11:53:32:   error-code:   1008
11:53:32:   error-text:   deadline exceeds deadline limit of the pool
wajimito commented 6 years ago

Mine now works! I moved lib files a level up - outside lib folder - I run command, it gave an error. Then I copied (not moved, copied) libs to library folder, so that I have libs in lib folder and the same files outside of it. Now it is working. I know it isn't most optimal solution but works.

enotbert commented 6 years ago

El Capitan creepMiner 1.8.3

Find that if in run.sh LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib:/usr/local/lib:$(pwd):$(pwd)/../lib change to DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:lib:/usr/local/lib:$(pwd):$(pwd)/../lib export DYLD_LIBRARY_PATH

creepMiner is firing up. but in my case it can't generate mining.conf