microsoft / VoTT

Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.
MIT License
4.27k stars 833 forks source link

Electron not starting but web-based front-end does #987

Open vineetrshenoy opened 4 years ago

vineetrshenoy commented 4 years ago

Describe the bug I have built the VoTT tool from source on a linux machine. When I do a npm start, the electron module starts, but then is killed. The web-based tools start and works correctly.

I need the Electron module since I have data on a remote machine, and can not transfer it to a cloud-based service.

To Reproduce Steps to reproduce the behavior:

git clone https://github.com/Microsoft/VoTT.git
 cd VoTT
 npm ci
 npm start

I also ran

npm run electron-start

to see if Electron would start on its own

Expected behavior The electron module should start.

Screenshots If applicable, add screenshots to help explain your problem. Screenshot from 2020-07-21 11-41-01

Also:

Screenshot from 2020-07-21 11-44-47

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

davidmicksch commented 4 years ago

I had a similar problem and resolved it with these two things: 1) Make sure that you are using a 10.x version of Nodejs. It did not work for me with a 12.x version of Nodejs. 2) Make sure that you are using the package-lock.json file that is tied to the master branch that you are building from. Somehow I had deleted it and I could not get it to run. The "npm ci" strictly follows the package versions in the lock file. I deleted the node_modules and it worked fine after I restored my package-lock.json and ran the "npm ci" command to build.

Also, you can download the packaged release from https://github.com/Microsoft/VoTT/releases. I was able to install it on an Ubuntu 18.04 computer with no problem and found it easier to start and use that way versus calling "npm start" from the command line.

vineetrshenoy commented 4 years ago

Thanks. I have tried what you suggested, but doesn't seem to work. I'll try the packaged release, but it looks like I need sudo privileges to install it, which I do not have. I'll try some work-around

nmaludy commented 3 years ago

Having same issue running from source, i'm running on CentOS 8 with NodeJS 10.23.1

strace shows it stuck in a epoll call:

> vott@2.2.0 electron-start /home/nmaludy/storage/home/src/keyspoke/sbir/VoTT
> node src/electron/start

) = 106
mprotect(0x4e88e404000, 503808, PROT_READ|PROT_WRITE) = 0
mprotect(0x4e88e404000, 503808, PROT_READ|PROT_EXEC) = 0
pipe2([20, 21], O_CLOEXEC)              = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
read(4, "*", 1)                         = 1
rt_sigaction(SIGCHLD, {sa_handler=0x5578ec009f80, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2e3536fb20}, NULL, 8) = 0
write(5, "*", 1)                        = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f2e36eaaa10) = 1785625
close(21)                               = 0
read(20, "", 4)                         = 0
close(20)                               = 0
futex(0x5578eea6f088, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
read(4, "*", 1)                         = 1
rt_sigaction(SIGTERM, {sa_handler=0x5578ec009f80, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2e3536fb20}, NULL, 8) = 0
write(5, "*", 1)                        = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
read(4, "*", 1)                         = 1
rt_sigaction(SIGINT, {sa_handler=0x5578ec009f80, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2e3536fb20}, NULL, 8) = 0
write(5, "*", 1)                        = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
epoll_wait(3, 

(node:1785625) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 connect listeners added. Use emitter.setMaxListeners() to increase limit