Error [ERR_SERVER_ALREADY_LISTEN]: Listen method has been called more than once without closing
jonathan84clark opened this issue · 0 comments
Hello,
I have been working on an issue with rpos. I have a Raspberry PI3 compute module with the (old) Jessie OS installed running rpos with no problems.
When I do an in-place OS upgrade from Jessie -> Buster then try to run rpos I get the following error:
Starting camera settings webserver on http://192.168.2.10:8081/
Binding MediaService to http://192.168.2.10:8081/onvif/media_service
Binding PTZService to http://192.168.2.10:8081/onvif/ptz_service
Uncaught Exception... : Error [ERR_SERVER_ALREADY_LISTEN]: Listen method has been called more than once without closing.
at Server.listen (net.js:1366:11)
at PTZService.SoapService.start (/home/pi/rpos/lib/SoapService.js:26:24)
at Object. (/home/pi/rpos/rpos.js:33:13)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
Steps to Reproduce
- Start with a working install of rpos on the raspberry PI Jessie OS
- Run rpos using the following command 'sudo node rpos.js'
- Not starts successfully
- Perform an in-place OS upgrade using the following steps
sudo echo "deb http://mirrordirector.raspbian.org/raspbian/ buster main contrib non-free rpi" > /etc/apt/sources.list
sudo echo "deb http://archive.raspberrypi.org/debian/ buster main ui" > /etc/apt/sources.list.d/raspi.list
sudo apt-get update
sudo apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
(Wait ~50 minutes for the install to finish) - Reboot the system
- Run rpos using the following command 'sudo node rpos.js'
Here is the output I am seeing:
Read IP address 192.168.2.10 from lo
Manufacturer : SSG
Model : MVC-ETH
HardwareId :
SerialNumber : 0000000068e8348c
FirmwareVersion : 2.0.0
Starting camera settings webserver on http://192.168.2.10:8081/
Binding DeviceService to http://192.168.2.10:8081/onvif/device_service
Binding MediaService to http://192.168.2.10:8081/onvif/media_service
Binding PTZService to http://192.168.2.10:8081/onvif/ptz_service
discovery_service started
Uncaught Exception... : Error: listen EADDRINUSE :::8081
at Object.exports._errnoException (util.js:1020:11)
at exports._exceptionWithHostPort (util.js:1043:20)
at Server._listen2 (net.js:1262:14)
at listen (net.js:1298:10)
at Server.listen (net.js:1394:5)
at DeviceService.SoapService.start (/home/pi/rpos/lib/SoapService.js:26:24)
at Object. (/home/pi/rpos/rpos.js:31:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
modprobe: FATAL: Module bcm2835_v4l2 is in use.
Other Notes
I tried a number of different things to resolve this issue.
- I was using an older version of rpos so I did a 'git pull' to update to the latest version, no luck
- I changed the port from 8081 to 8082 and I got the same result
- I performed an analysis on the used ports 'sudo netstat -tulpn'
I found the following ports in use after a reboot on buster
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init
tcp 0 0 0.0.0.0:8722 0.0.0.0:* LISTEN 600/sshd
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 602/dnsmasq
tcp6 0 0 :::111 :::* LISTEN 1/init
tcp6 0 0 :::8722 :::* LISTEN 600/sshd
tcp6 0 0 :::53 :::* LISTEN 602/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 602/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 575/dhcpcd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/init
udp 0 0 192.168.2.10:123 0.0.0.0:* 589/ntpd
udp 0 0 192.168.1.126:123 0.0.0.0:* 589/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 589/ntpd
udp 0 0 0.0.0.0:47842 0.0.0.0:* 448/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 448/avahi-daemon: r
udp6 0 0 :::53 :::* 602/dnsmasq
udp6 0 0 :::111 :::* 1/init
udp6 0 0 fe80::6fd3:d7b1:713:123 :::* 589/ntpd
udp6 0 0 ::1:123 :::* 589/ntpd
udp6 0 0 :::123 :::* 589/ntpd
udp6 0 0 :::5353 :::* 448/avahi-daemon: r
udp6 0 0 :::45291 :::* 448/avahi-daemon: r
As you can see, there is no current usage of port 8081 - Attempted to remove and re-install rpos (this failed miserably, it seems that rpos is can no longer be installed, I filed a separate defect report on that issue)
At this point I'm not sure what else I can do.
If I can get help with this, that would be great!
Thanks,
Jonathan L Clark