RequestError: Unable to load /data_source_properties.shtm?typeId=MODBUS_IP status: 500
-
It's definitely strange. I have loaded Mango on many platforms before, but I am not sure I ever loaded it on a Debian 9 system. Maybe it was Debian 8. It really shouldn't matter as it is only using Java in any case. Mango is always easy to load and get working, so I am a bit stumped on this one. This is the first time I was not up and running within minutes.
-
oops don't want to muddy the water, I have loaded it on a Debian system before, which I am not sure if that was 8 or 9 and it worked perfectly and easily. This particular install is Debian 9 that I am having trouble with.
-
Hi jvaughters,
You may try deleting the Mango/work/jsp directory to force JSPs to recompile. The stack trace in the OP relates to serial ports, so perhaps the serial port regex in your Mango/overrides/properties/env.properties (or Mango/classes/env.properties if you've not copied it to overrides yet) describes a serial port that cannot be opened. Perhaps the Debian user launching Mango needs the
dialout
group, perhaps the regex needs to be revised to not describe files which are not serial ports.Unfortunately the stack trace is largely irrelevant because it's this exception being rewrapped and thrown: https://github.com/infiniteautomation/ma-core-public/blob/3.5.x/Core/src/com/infiniteautomation/mango/io/serial/SerialPortManagerImpl.java#L164
It being an unsatisfied link error would suggest the serial port library is having trouble accessing the appropriate resources (which are bundled with the JAR). I wonder if you've tried restarting Mango? Maybe reinstalling Mango or just the JSSC JAR file?
-
Hey Phil,
Great, thx for the suggestion. I will try that and report back. Just so you know, I have installed and reinstalled, even fresh installed a Mango 3.4.2 version that I had used prior. Both exhibited the same issue, so the Hardware link to the serial could be significant as this is a brand new hardware platform that I am using. I also have started it under a no console user for security, but wiped everything because of the issue and installed and ran software as root to remove the user factor from troubleshooting.
Specifically it is a Pine Rock64 with 4GB of Memory. It never occurred to me that the hardware could be an issue as I have loaded this on many different types of hardware and OS, all for testing or Demo purposes. For this specific load, I am planning to use it as an Energy Monitoring system for my house and I settled on this board.
-
Phil,
Thanks for pointing out the serial port issue. I tried deleting the dir you mentioned and reboot with no luck, but upon searching the error "jssc.SerialNativeInterface.openPort(Ljava/lang/String;Z)J" on the almighty infinitely wise web, I found a specific issue for ARM64 and jssc libraries. Mango does not seem to support the jssc libs that ARM64 uses. I have not worked out all the details yet, but here is the thread that describes a similar issue.
https://github.com/winder/Universal-G-Code-Sender/issues/524
Since the Pine Rock64 is ARM64 architecture, this seems to be the issue. The solution seems to be tracking down the proper libs and inserting them into the proper areas, which I have not done yet.
-
Good leg work! Here's the issue in the JSSC repo about it, https://github.com/scream3r/java-simple-serial-connector/issues/121
They seem to suggest compiling jssc.cpp and repacking the jar with the new .so file and an appropriate filename.
-
Right, so I have one better, there is already a compiled deb package "libjssc-java" that has all the files I believe I need. I have not done it yet, but I suspect I could repack the /opt/mango/lib/jssc-2.8.0.jar with the necessary compiled files. However, I have some questions.
- I have no plans on using any serial ports at all, can mango be configured to just ignore all serial ports and associated software?
- Do you think there will be any other hardware layer library issues with Mango?
Thanks as always for your help.
-
- I would suspect it'll never try to open any serial ports if it doesn't detect any. You could change the
serial.port.linux.regex
property to something that will not match any files in theserial.port.linux.path
which should avoid the issue. - I wouldn't think so. I think any other interacting with the system would be done through the JVM and not a 3rd party library.
- I would suspect it'll never try to open any serial ports if it doesn't detect any. You could change the
-
Ok, thx for the input. So last step that actually was quite easy and I did not have to do anything except install the "libjssc-java" deb package that was already in the repository and then copy /usr/share/java/jssc-2.8.0.jar to the /opt/mango/lib dir. Which will replace the default mango jar file and this solved the issue. I did not have to repack or anything else. The replacement jar references a library in the /usr/lib/jni directory that is compiled for the ARM64 architecture.
SOLVED
Thanks for the help as always, and now you also know how to fix this going forward.
-
Certainly, thanks for solving it here on the forum so people may search for it!