On 10.03.2016 18:41, Xavier Mendez wrote:
Just compiled the latest jackd2, and when using
Netjack both manager and driver crash after sending parameters. I traced back to this
change from 02f74a659, which modifies the network parameter struct:
--- a/common/JackNetTool.h
+++ b/common/JackNetTool.h
@@ -94,9 +94,9 @@ namespace Jack
- char fName[JACK_CLIENT_NAME_SIZE];
- char fMasterNetName[JACK_SERVER_NAME_SIZE];
- char fSlaveNetName[JACK_SERVER_NAME_SIZE];
+ char fName[JACK_CLIENT_NAME_SIZE+1];
+ char fMasterNetName[JACK_SERVER_NAME_SIZE+1];
+ char fSlaveNetName[JACK_SERVER_NAME_SIZE+1];
That extra byte for the NUL terminator breaks the alignment, and somehow causes some ints
to be sent as little-endian:
Sample rate : 12288000 frames per second
Period size : 131072 frames per period
Reverting the three lines seems to resolve the problem. I don't really see the use
for having the NUL terminator go through the network...
What do you think?
I can confirm this is an issue for me.
The "-d net" option stopped working some time ago and I've been wondering
why, that change seems to be the reason.
Reverting it in both client&server makes netmanager work again.
Please do a pull request against jack2's github repo.
That would be the fastest way to get this fixed upstream.
It would be better to understand why changing the data structure (which is used both side
of the connection… ) caused the crash. Are you sure the code is correctly recompiled
everywhere?
Stéphane