OpenDroneMap / WebODM

User-friendly, commercial-grade software for processing aerial imagery. 🛩
https://www.opendronemap.org/webodm/
GNU Affero General Public License v3.0
2.73k stars 917 forks source link

Process exited with code null #98

Closed mapdad1976 closed 7 years ago

mapdad1976 commented 7 years ago

I am trying to use the WebODM for the first time and this is the error I receive once the images are uploaded and processing, "Process exited with code null", is there anyone that can help?

pierotofy commented 7 years ago

Hi @mapdad1976 thanks for reporting the issue.

Could you provide us with the console output of the task, as well as the images (if possible) and the options you have used to start the task?

mapdad1976 commented 7 years ago

I am using the odm_data_bellus data set downloaded from the GitHub website.

Sent from my Verizon 4G LTE smartphone

-------- Original message -------- From: Piero Toffanin notifications@github.com Date: 2/10/17 1:57 PM (GMT-05:00) To: OpenDroneMap/WebODM WebODM@noreply.github.com Cc: mapdad1976 mapdad76@hotmail.com, Mention mention@noreply.github.com Subject: Re: [OpenDroneMap/WebODM] Process exited with code null (#98)

Hi @mapdad1976https://github.com/mapdad1976 thanks for reporting the issue.

Could you provide us with the console output of the task, as well as the images (if possible) and the options you have used to start the task?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/OpenDroneMap/WebODM/issues/98#issuecomment-279033437, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYgJs2D6R9-uvKPdJjhruqFoqhqaV3o9ks5rbLLPgaJpZM4L9p5l.

pierotofy commented 7 years ago

How about console output? Options?

mapdad1976 commented 7 years ago

LOL, I am not sure what you are asking. I am new to this, I am using Ubuntu 16 and haven't used Linux in years.


From: Piero Toffanin notifications@github.com Sent: Friday, February 10, 2017 2:11 PM To: OpenDroneMap/WebODM Cc: mapdad1976; Mention Subject: Re: [OpenDroneMap/WebODM] Process exited with code null (#98)

How about console output? Options?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/OpenDroneMap/WebODM/issues/98#issuecomment-279037484, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYgJszfe-_mjHVETw43BqhFWZ4pgaDkMks5rbLZOgaJpZM4L9p5l.

pierotofy commented 7 years ago

No worries, if you used WebODM, there's a console output window.

image

I'll assume that you used the default parameters.

mapdad1976 commented 7 years ago

Yes I used the default setting and I cannot even get to the point where it gives me any info in the output window

From: Piero Toffanin notifications@github.com Sent: Friday, February 10, 2017 2:17 PM To: OpenDroneMap/WebODM Cc: mapdad1976; Mention Subject: Re: [OpenDroneMap/WebODM] Process exited with code null (#98)

No worries, if you used WebODM, there's a console output window.

[image]https://cloud.githubusercontent.com/assets/1951843/22840437/8aa14e8a-ef9b-11e6-9a17-3e21f716c4cb.png

[https://cloud.githubusercontent.com/assets/1951843/22840437/8aa14e8a-ef9b-11e6-9a17-3e21f716c4cb.png]

I'll assume that you used the default parameters.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/OpenDroneMap/WebODM/issues/98#issuecomment-279039150, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYgJs7XvNs0Z4_Wmid040iSn3wMIQ1vsks5rbLfLgaJpZM4L9p5l.

pierotofy commented 7 years ago

I'm not sure; unless you can provide us with additional information, I cannot guess what is causing the problems you are having.

pierotofy commented 7 years ago

I'll close this for now, unless more information can be provided.

atricault commented 7 years ago

Hi Guys,

I've the same issue. The strange thing is that I've 2 computers that both work on Ubuntu 16.04LTS. On the first one WebODM works and on the second one there is this problem.

The other problem is that there is no console output in the Web interface image

And nothing usefull in the Linux console : webapp | INFO Acquiring lock: Task [Task of 2017-03-08T23:17:56.483Z] (2) webapp | INFO Restarting Task [Task of 2017-03-08T23:17:56.483Z] (2) node-odm-1 | info: About to run: python /code/run.py --force-ccd 6.16 --project-path /var/www/data/1e150b68-09e1-4776-ba84-c43847434274 --pmvs-num-cores 4 webapp | INFO Acquiring lock: Task [Task of 2017-03-08T23:17:56.483Z] (2) webapp | INFO Acquiring lock: Task [Task of 2017-03-08T23:17:56.483Z] (2) webapp | INFO Processing status: 30 for Task [Task of 2017-03-08T23:17:56.483Z] (2)

tHANKS

pierotofy commented 7 years ago

@atricault really strange, thanks for reporting it.

If you add this processing node: hostname: nodeodm.masseranolabs.com port: 80

Create a new task and assign it to this new node, does processing work?

atricault commented 7 years ago

That works with the test platform nodeodm.masseranolabs.com port: 80

pierotofy commented 7 years ago

The problem is in node-odm-1, but I'm not sure what the cause of the problem would be. Try to run:

docker run -ti -p 3000:3000 opendronemap/node-opendronemap

Then load a browser to http://<your-ip>:3000 and try to load some images from the interface there. Any error messages then?

atricault commented 7 years ago

I've made the test and it fails without any error

image

And the console sudo docker run -ti -p 3000:3000 opendronemap/node-opendronemap info: No tasks dump found info: Checking for orphaned directories to be removed... info: Server has started on port 3000 info: About to run: python /code/run.py --force-ccd 6.16 --project-path /var/www/data/81670047-19dc-4d6f-bbd3-c9f050ee5c30 --pmvs-num-cores 4

For information I use the Quarry example of Pix4D

pierotofy commented 7 years ago

Mm, the plot thickens! What's the output of?

sudo docker run -ti --rm --entrypoint=/usr/bin/python -v /path_to_images/:/volume/images opendronemap/node-opendronemap /code/run.py --project-path /volume

? Replace /path_to_images to the path where your JPG images are stored.

atricault commented 7 years ago

Nothing! okamaugo@PCFixeHP:~/WebODM$ sudo docker run -ti --rm --entrypoint=/usr/bin/python -v /home/okamaugo/Drone/Tests/Photogrammetry/example_quarry/images:/volume/images opendronemap/node-opendronemap /code/run.py --project-path /volume okamaugo@PCFixeHP:~/WebODM$

I'm not really sure about the command line, I'm not a Docker expert! Images are in /home/okamaugo/Drone/Tests/Photogrammetry/example_quarry/images But I've to sub directories

pierotofy commented 7 years ago

No worries, I'm learning docker as I go also :)

Could you try the following for me?

sudo docker run -ti --rm --entrypoint=/bin/bash -v /home/okamaugo/Drone/Tests/Photogrammetry/example_quarry/images:/volume/images opendronemap/node-opendronemap

A root shell will open.

From that root shell, type:

ls /volume/images
cd /code
python run.py --project-path /volume

And copy the output of your console?

atricault commented 7 years ago

root@23f0ad670133:/var/www# ls /volume/images IMG_1146.JPG IMG_1173.JPG IMG_1200.JPG IMG_1227.JPG IMG_1254.JPG IMG_1147.JPG IMG_1174.JPG IMG_1201.JPG IMG_1228.JPG IMG_1255.JPG IMG_1148.JPG IMG_1175.JPG IMG_1202.JPG IMG_1229.JPG IMG_1256.JPG IMG_1149.JPG IMG_1176.JPG IMG_1203.JPG IMG_1230.JPG IMG_1257.JPG IMG_1150.JPG IMG_1177.JPG IMG_1204.JPG IMG_1231.JPG IMG_1258.JPG IMG_1151.JPG IMG_1178.JPG IMG_1205.JPG IMG_1232.JPG IMG_1259.JPG IMG_1152.JPG IMG_1179.JPG IMG_1206.JPG IMG_1233.JPG IMG_1260.JPG IMG_1153.JPG IMG_1180.JPG IMG_1207.JPG IMG_1234.JPG IMG_1261.JPG IMG_1154.JPG IMG_1181.JPG IMG_1208.JPG IMG_1235.JPG IMG_1262.JPG IMG_1155.JPG IMG_1182.JPG IMG_1209.JPG IMG_1236.JPG IMG_1263.JPG IMG_1156.JPG IMG_1183.JPG IMG_1210.JPG IMG_1237.JPG IMG_1264.JPG IMG_1157.JPG IMG_1184.JPG IMG_1211.JPG IMG_1238.JPG IMG_1265.JPG IMG_1158.JPG IMG_1185.JPG IMG_1212.JPG IMG_1239.JPG IMG_1266.JPG IMG_1159.JPG IMG_1186.JPG IMG_1213.JPG IMG_1240.JPG IMG_1267.JPG IMG_1160.JPG IMG_1187.JPG IMG_1214.JPG IMG_1241.JPG IMG_1268.JPG IMG_1161.JPG IMG_1188.JPG IMG_1215.JPG IMG_1242.JPG IMG_1269.JPG IMG_1162.JPG IMG_1189.JPG IMG_1216.JPG IMG_1243.JPG IMG_1270.JPG IMG_1163.JPG IMG_1190.JPG IMG_1217.JPG IMG_1244.JPG IMG_1271.JPG IMG_1164.JPG IMG_1191.JPG IMG_1218.JPG IMG_1245.JPG IMG_1272.JPG IMG_1165.JPG IMG_1192.JPG IMG_1219.JPG IMG_1246.JPG Thumbs.db IMG_1166.JPG IMG_1193.JPG IMG_1220.JPG IMG_1247.JPG example_quarry IMG_1167.JPG IMG_1194.JPG IMG_1221.JPG IMG_1248.JPG example_quarry.p4d IMG_1168.JPG IMG_1195.JPG IMG_1222.JPG IMG_1249.JPG micmac_AMD_2GoRAM IMG_1169.JPG IMG_1196.JPG IMG_1223.JPG IMG_1250.JPG IMG_1170.JPG IMG_1197.JPG IMG_1224.JPG IMG_1251.JPG IMG_1171.JPG IMG_1198.JPG IMG_1225.JPG IMG_1252.JPG IMG_1172.JPG IMG_1199.JPG IMG_1226.JPG IMG_1253.JPG root@23f0ad670133:/var/www# cd /code root@23f0ad670133:/code# python run.py --project-path /volume Illegal instruction (core dumped)

atricault commented 7 years ago

My images are here

I've this erreor Illegal instruction (core dumped)

pierotofy commented 7 years ago

I think we got it. What is the output of (from your Ubuntu shell): cat /proc/cpuinfo?

It seems that your computer has a relatively old CPU?

atricault commented 7 years ago

Yes, a little bit old, as you say : AMD Athlon(tm) II X4 635 Processor But it's enough to do to 99% of the currents tasks!

Result of cat /proc/cpuinfo/ processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 5 model name : AMD Athlon(tm) II X4 635 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 2200.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid eagerfpu pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg bogomips : 5826.65 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 1 vendor_id : AuthenticAMD cpu family : 16 model : 5 model name : AMD Athlon(tm) II X4 635 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 2900.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 4 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid eagerfpu pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg bogomips : 5826.65 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 2 vendor_id : AuthenticAMD cpu family : 16 model : 5 model name : AMD Athlon(tm) II X4 635 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 2 cpu cores : 4 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid eagerfpu pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg bogomips : 5826.65 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 3 vendor_id : AuthenticAMD cpu family : 16 model : 5 model name : AMD Athlon(tm) II X4 635 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 1700.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 3 cpu cores : 4 apicid : 3 initial apicid : 3 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid eagerfpu pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg bogomips : 5826.65 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate

pierotofy commented 7 years ago

Yes you can certainly use it for processing, but you will need to compile OpenDroneMap from sources. We set the threshold for prebuilt images at the core2 flag (Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support) https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html and the Athlon family is just below that.

You can recompile from docker by issuing:

sudo docker run -ti --entrypoint=/bin/bash opendronemap/node-opendronemap

From the root console:

cd /code
rm -fr SuperBuild/build build
cd SuperBuild && mkdir build && cd build && cmake .. && make -j$(nproc) && cd ../.. && mkdir build && cd build && cmake .. && make -j$(nproc)
exit

This will take a while (several hours).

Back from the Ubuntu shell:

sudo docker commit $(docker ps -lq) opendronemap/node-opendronemap
sudo docker rm $(docker ps -aq)

Then:

./webodm.sh stop
./webodm.sh start

The pros of all this work is that you'll have OpenDroneMap optimized for your CPU :)

pierotofy commented 7 years ago

I have also updated the README to include this new troubleshooting step.

atricault commented 7 years ago

Thank you very much.

I'm executing the recompilation. I'll try tomorrow. it's midnigh in France and I start at 8:00 tomorrow!

I'll update the post

atricault commented 7 years ago

Hello

I recompiled everything but I still get the same error. No change

pierotofy commented 7 years ago

What's the output of:

sudo docker images?

If you're getting the same error, it's quite possible that the wrong docker image is being used (not sure why).

atricault commented 7 years ago

Thanks a lot for your investment!

REPOSITORY TAG IMAGE ID CREATED SIZE opendronemap/node-opendronemap latest b22979916339 50 minutes ago 4.93 GB nodeodm latest 5800b9cc0090 3 days ago 4.95 GB webodm_webapp latest b78389875280 3 days ago 2.36 GB

3e092fa830d1 3 days ago 1.87 GB webodm_db latest d70c374fe791 3 days ago 605 MB opendronemap/node-opendronemap d4168addbe81 5 days ago 4.93 GB opendronemap/opendronemap latest d3333e62ca10 5 days ago 4.61 GB python 3.5 4e5ed9f6613e 11 days ago 687 MB postgres 9.5 df22c7d36776 11 days ago 264 MB
pierotofy commented 7 years ago

Does this command work?

sudo docker run -ti --rm --entrypoint=/usr/bin/python -v /home/okamaugo/Drone/Tests/Photogrammetry/example_quarry/images/:/volume/images opendronemap/node-opendronemap /code/run.py --project-path /volume

No problem, I'm just hoping to learn something new from troubleshooting this.

atricault commented 7 years ago

No, this does nothing!!!

pierotofy commented 7 years ago

When you recompiled the sources with:

cd /code
rm -fr SuperBuild/build build
cd SuperBuild && mkdir build && cd build && cmake .. && make -j$(nproc) && cd ../.. && mkdir build && cd build && cmake .. && make -j$(nproc)

Did you verify that compilation was successful? Were there any error messages?

atricault commented 7 years ago

There is some warnings about variables conversions, but no error.

pierotofy commented 7 years ago

Then right after you compiled from sources (without exiting the root shell), if you run:

cd /code
python run.py

What is the output?

pierotofy commented 7 years ago

Right after the compilation commands, I would also try to run:

pip install --force-reinstall -U PyYAML exifread gpxpy xmltodict catkin-pkg

There's some other binary that we might have missed.

atricault commented 7 years ago

for the instrcution cd /code then python run.py, I get : Illegal instruction (core dumped)

The last instruction (pip install --force-reinstall -U PyYAML exifread gpxpy xmltodict catkin-pkg) seems to install some stuff, but doens't change anything

pierotofy commented 7 years ago

Let's give it a few more tries. First of all, does python work?

python --version

Then let's see if it's a problem with some of the pip packages:

pip uninstall PyYAML exifread gpxpy xmltodict catkin-pkg
pip install --no-binary --force-reinstall -U PyYAML exifread gpxpy xmltodict catkin-pkg 

Found this while googling: https://anvileight.uk/blog/2016/12/23/how-fix-python-illegal-instruction-django/ which seems a similar issue.

atricault commented 7 years ago

I'm running Python 2.7.6

There is no change with the 2 other commands.

I'll will try to delete every thing to get a clean copy and do the following things :

git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input pip install --no-binary --force-reinstall -U PyYAML exifread gpxpy xmltodict catkin-pkg sudo docker run -ti --entrypoint=/bin/bash opendronemap/node-opendronemap cd /code rm -fr SuperBuild/build build cd SuperBuild && mkdir build && cd build && cmake .. && make -j$(nproc) && cd ../.. && mkdir build && cd build && cmake .. && make -j$(nproc) exit sudo docker commit $(sudo docker ps -lq) opendronemap/node-opendronemap sudo docker rm $(sudo docker ps -aq) ./webodm.sh stop ./webodm.sh start

pierotofy commented 7 years ago

The pip install --no-binary --force-reinstall -U PyYAML exifread gpxpy xmltodict catkin-pkg must be run within the docker container. Not on the Ubuntu host. So move it after the cd SuperBuild && mkdir build && ... command.

jayeshnaik commented 6 years ago

I have same problem illegal instruction run.py core message.. If there is any updates let me know. Mine is new install on Linux Mint ( aka ubunto ) I tried the multi hour compile and looks no errors... not sure is commit to docker worked?

jayeshnaik commented 6 years ago

/code/run.sh: line 6: 26 Illegal instruction (core dumped) python $RUNPATH/run.py "$@"

jayeshnaik commented 6 years ago

Is there docker setting for Number of CPU etc?

pierotofy commented 6 years ago

@jayeshnaik

If the computer running node-opendronemap is using an old or 32bit CPU, you need to compile OpenDroneMap from sources and setup node-opendronemap natively. You cannot use docker. Docker images work with CPUs with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support or higher.

https://github.com/OpenDroneMap/WebODM#common-troubleshooting

DelphiR commented 6 years ago

Hi. I have made a decade of tests using different computers in our lab. This error will 100% reproduced in many AMD CPUs from athlon to phenom ones. The attempt of recompile will not help. It seems that docker contains some Python compiled code for special cpus. Dear autors! You just enable the core2 optimization which may give you 1-2% of calculation speed but destroy compatibility with many CPUs! This is bug and this is 100% incorrect because involved a lot of users!

DelphiR commented 6 years ago

I also try to rebuild Python packegs with no succes. It seems that docker was build also with a newer cpu to get such type of errors.