Comments (21)
Hello,
I apreciate your quick reply, thank you :)
Due to lockdown, I was working from home.
After a full day being on laptop, I don't had motivation to do anything else :(
I appreciate your feedback, I will try to get the latest version and test :)
from nymphcast.
I will re-install all my system and see.
from nymphcast.
Hello, and thank you for checking out NymphCast :)
Could you provide more details about the steps you took before you got this crash?
Please provide details on the player-side log (if available), and anything else that might be relevant, such as what version of Raspbian or other OS on the Raspberry Pi 3.
I will try to replicate the issue on my end with a Raspberry Pi 3 and hopefully report back on this soon.
from nymphcast.
I have confirmed the issue. I'll be working on a fix as soon as the cause has been identified.
from nymphcast.
A number of fixes have been implemented which should resolve the issue.
Please test it and let me know if it works for you now :)
from nymphcast.
Hi,
I face the same issue (same error in the log) on my system (Odroid C2 - Ubuntu Mate 18.04).
After reading this discussion, I rebuild my nymph server with your latest update but I got the same result:
Starting new session for file with size: 99812688
Stopping timer...
Destroying texture...
Destroying renderer...
Destroying window...
6 - 19676.0 NymphRemoteClient 260 Calling callback method: MediaReadCallback - src/remote_client.cpp
6 - 19676.0 NymphMessage 219 Serialising message with flags: 0x4 - src/nymph_message.cpp
6 - 19676.0 NymphSession 217 Sent 46 bytes. - src/nymph_session.cpp
Quitting...
Segmentation fault (core dumped)
Note: I tried to play a .mp4 video from my client installed on my desktop (windows 10).
How can I get more logs to understand the issue?
On the other hand, I run also the server using a service. When I look to the journalctl, I have some additional logs like this:
Apr 05 18:12:50 odroid nymphcast_server[6842]: error: XDG_RUNTIME_DIR not set in the environment.
Apr 05 18:12:50 odroid nymphcast_server[6842]: error: XDG_RUNTIME_DIR not set in the environment.
Apr 05 18:12:50 odroid nymphcast_server[6842]: Could not create renderer: Invalid window
Note: I create a user "nymph" and I grant the ownership for the nymph_server. But I have the same issue using root user.
I had also the user "nymph" to groups: audio, video, avahi-autoipd, lightdm, pulse
Could it be a clue? But I don't know that to do with that.
I saw that there is a nymphcast_server.debug now. Is it a package to have more verbose? How I use it to debug this issue?
Thanks.
from nymphcast.
I saw that there is a nymphcast_server.debug now. Is it a package to have more verbose? How I use it to debug this issue?
The .debug binary is the same as the nymphcast_server
executable, though with the debug symbols still included. In this scenario it'd be mostly useful to run it with gdb:
gdb nymphcast_server.debug
Then
run -c nymphcast_config.ini
Use the NymphCast server as usual, then when it crashes, it'll return to the gdb command line, where with bt full
you can get the full backtrace.
I'll attempt to reproduce it on my end as well.
from nymphcast.
Unfortunatelly, for me it is stopping here:
Starting program: /root/NymphCast/src/server/bin/nymphcast_server.debug -c /root/NymphCast/src/server/nymphcast_config.ini
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".Program received signal SIGILL, Illegal instruction.
0x0000007fb59414c8 in ?? () from /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
(gdb) bt full
0 0x0000007fb59414c8 in () at /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
1 0x0000007fb5adb908 in () at /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
Tried to find some information but there are beyond my understanding. :(
I find something here: monero-project/monero#4452
I suspect this is the issue I was having where it was compiling with crypto extensions on ARMv8, when the Odroid C2's chip doesn't support hardware AES.
I think you have to do export NO_AES=1 before compiling. I'm hoping to fix this soon in CMakeLists.txt
Or, i find something also here in stackoverflow to get more information but as I do not understand it, I prefer to not run it. (and not sure it is related) So I will work on that to understand a little bit better.
Hope that could bring you some valuable information. Let me know if I can provide you additional logs.
from nymphcast.
I change my strategy after reading the gdb man.
I start my server and then I pug gdb on the PID. And I get another resultat:
0x0000007fa2a1b22c in futex_wait_cancelable (private=, expected=0, futex_word=0x7fda8ea520) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
88 ../sysdeps/unix/sysv/linux/futex-internal.h: No such file or directory.
I am still looking on this.
Actually, I just saw that the display is currently done with my remote client (mobaxterm) and if I kill the x server on mobaxterm, I do not have display... I will look on my display configuration.
from nymphcast.
I just tested NymphCast server in a Debian Buster VM and in Raspbian on a Raspberry Pi 3B. Player ran on Windows 7.
Both MPEG and MP4 videos played without issues in either configuration. Transition between screensaver to video and back to screensaver also saw no issues.
After doing git pull
in the NymphCast project folder, you can try running export UPDATE=1
before ./setup.h
to ensure that the current version of NymphRPC is installed.
from nymphcast.
Interestingly, I seem to have encountered the original crash on a different Raspberry Pi 3B system, using the same Raspbian SD card, no less:
Starting new session for file with size: 59501376
Stopping timer...
Destroying texture...
6 - 953.0 NymphRemoteClient 260 Calling callback method: MediaReadCallback - src/remote_client.cpp
6 - 953.0 NymphMessage 219 Serialising message with flags: 0x4 - src/nymph_message.cpp
Destroying renderer...
6 - 953.0 NymphSession 217 Sent 46 bytes. - src/nymph_session.cpp
Destroying window...
Quitting...Thread 20 "nymphcast_serve" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x647fba90 (LWP 975)]
0x66147574 in ?? ()
(gdb) bt full
#0 0x66147574 in ()
#1 0x725ff990 in vcos_dummy_thread_cleanup (cxt=0x63a01610) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:104
i =
thread = 0x63a01610
#2 0x74efe2fc in __nptl_deallocate_tsd () at pthread_create.c:301
data =
level2 = 0x647fbb1c
idx =
round = 0
cnt =
self = 0x647fba90
#3 0x74efe4a4 in start_thread (arg=0x647fba90) at pthread_create.c:497
pd = 0x647fba90
unwind_buf =
{cancel_jmp_buf = {{jmp_buf = {70375868, 346130812, 1996482920, 1686092432, 1838843088, 338, 2130694818, 1686092432, 0, 1686091212, 0 <repeats 54 times>}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call =
#4 0x74e81578 in () at ../sysdeps/unix/sysv/linux/arm/clone.S:73
The one Raspberry Pi 3B board is a 'Make in the UK' model, the other 'Made in PRC'. On the former I have no issues with playback, on the latter board I get the listed segmentation fault in a system library related to pthreads.
It's unclear what the cause of this crash may be.
from nymphcast.
@Aftabx Is your Raspberry Pi 3 a 3B model, and is it made in the UK or PRC? (should be listed on the board)
from nymphcast.
The line in question can be seen here: https://github.com/raspberrypi/userland/blob/master/interface/vcos/pthreads/vcos_pthreads.c#L104
thread->at_exit[i].pfn(thread->at_exit[i].cxt);
This means the issue is apparently in the Video Core OS (VCOS) API, with seemingly invalid thread handles or structures being accessed, which causes the SIGSEGV signal.
Maybe something is out of sync with the firmware on the GPU side of the SoC?
from nymphcast.
Hi Maya,
So eventually I changed my OS to Armbian Buster (1st try with Ubuntu Mate 18.04) and now nymphcast is working :)
My client is not killed after running video (I tried with .avi and .mp4). So great!
But still I have some issues:
- the client do not automatically find the server now but not a big deal as I can manually enter the IP of the server
- I just manage to run nymphcast on remote display ... it does not work via hdmi. But I guess that is because the resource is already used by my desktop. I have the same issue for the sound with a clear error message saying resource busy
So I will try fixing my configuration regarding resource now. Thanks for your work.
By the way, I got the SIGSEGV signal too ... I fixed it with a firmware update.
from nymphcast.
- There's an Avahi service script that will announce the NymphCast instance on the LAN. It's found under
src/server/avahi
along with an installation shell script. This also gets installed with theinstall_linux.sh
shell script in the root of the project, which will also install the server to system folders (/usr/bin
, etc.). - I'm not entirely sure what you mean with the HDMI issue. NymphCast server should open a new window on the desktop for its output when video output is enabled in its .ini file. Are you getting SDL error messages?
from nymphcast.
Ok, thanks for the tips for Avahi service. I will look to that.
Regarding the HDMI, I don't know how to describe it. In fact, when I start NymphCast in SSH or via service, it cannot open a window unless I have my X fordarwing activated. But if I am connected physically on the system on the desktop and I start NymphCast, the window is created...
So I'm looking about something in my Xorg conf but as I know little about that it is just a mess for me.
If you have some ideas, I will be glad to look at them. Thanks.
from nymphcast.
Hi,
So, I find a solution to my issue to run nymphcast as service (systemd). I modified nymphcast.service to add some environment variable:
[Unit]
Description=NymphCast audio/video casting server
After=graphical.target
[Service]
User=USER_RUNNING_NYMPHCAST
Environment="DISPLAY=:0"
Environment="XAUTHORITY=~/.Xauthority"
ExecStart=/path/to/nymphcast_server -c /path/to/nymphcast_config.ini -a /path/to/apps/ -w /path/to/wallpapers/
Restart=always
RestartSec=5
[Install]
WantedBy=graphical.target
Like this for me the service is started without issues.
Hope that could help.
In any case, regarding the main topic of this issue, today, I have no more the quit after running MP4. I launch AVI and MP4 on my server.
from nymphcast.
@BatBat81 Glad to hear that you got it fixed :)
It might be something specific with Armbian, perhaps? I got a Banana Pro board with Armbian that I can try it on, see whether I get the same issues with X forwarding as you did.
Thanks for sharing the modified service file at any rate! :)
from nymphcast.
I am answering a bit late :)
I have a Raspberry Pi 3B.
since your update, I have not tried it, but I should do some new test soon :)
from nymphcast.
Stange, I can't build the client anymore -->
Download
or clone the project repository
Build the libnymphcast library in the src/client_lib folder using the Makefile in that folder: make lib.
When I follow those steps :
➜ client_lib git:(master) ✗ sudo make lib mkdir -p lib mkdir -p obj/shared mkdir -p obj/static g++ -c -o obj/static/nymphcast_client.o nymphcast_client.cpp -I src -g3 -std=c++17 -O0 -lnymphrpc -lPocoNet -lPocoUtil -lPocoFoundation -lPocoJSON clang: warning: -lnymphrpc: 'linker' input unused [-Wunused-command-line-argument] clang: warning: -lPocoNet: 'linker' input unused [-Wunused-command-line-argument] clang: warning: -lPocoUtil: 'linker' input unused [-Wunused-command-line-argument] clang: warning: -lPocoFoundation: 'linker' input unused [-Wunused-command-line-argument] clang: warning: -lPocoJSON: 'linker' input unused [-Wunused-command-line-argument] In file included from nymphcast_client.cpp:13: ./nymphcast_client.h:22:10: fatal error: 'nymph/nymph.h' file not found #include <nymph/nymph.h> ^~~~~~~~~~~~~~~ 1 error generated. make: *** [obj/static/nymphcast_client.o] Error 1 ➜ client_lib git:(master) ✗
Did I miss something?
from nymphcast.
Stange, I can't build the client anymore -->
Download
or clone the project repository
Build the libnymphcast library in the src/client_lib folder using the Makefile in that folder: makelib.
[..]
Did I miss something?
That sounds like it cannot find the nymph.h header file for NymphRPC. Did you build and install NymphRPC?
from nymphcast.
Related Issues (20)
- Nymphcast "Server" Naming
- raspberrypi nymphcast_server[9460]: /usr/local/bin/nymphcast_server: error while loading shared libraries: libPocoUtil.so.70: cannot open shared object file: No such file or directory HOT 5
- Integration with Home Assistant HOT 1
- Client app in Kirigami HOT 1
- Firefox addon
- Integration with Plasma Bigscreen HOT 5
- Flatpak package
- Need help getting started HOT 4
- Failure to install Android APK "App not installed as package appears to be invalid" HOT 4
- Playing status is not synced over clients on launch HOT 7
- Groups are not listed under "Group remotes" and thus can not be removed or renamed HOT 1
- Unable to play to group because of "Please check that all remotes in the group are online" error HOT 8
- NymphCast-MediaServer no longer build on Arch Linux HOT 3
- NymphCastPlayer no longer build on Arch Linux HOT 4
- Feature Request :-) HOT 2
- [Feature request] Add a PipeWire client so system audio can be casted to a receiver HOT 3
- Raspberry Pi Server: Audio works through the receiver, but doesn't output video HOT 7
- Calling media status callback failed: Provided handle was not found HOT 1
- Q: Could Nymphcast be integrated with "MatterCast"? HOT 1
- [REQUEST] NymphCast `Music Provider` and `Player Provider` for "Music Assistant" (a.k.a. MA) for streaming high-quality audio directly to and from MA-streaming interoperability/integration software?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nymphcast.