Client crashes after a while

Hi I am seeing 2 issues on my client.

1) Is that the config file seems to be overwritten at each boot. I have set AUTO USE ALL many times ([AUTOSHARE] ALL=1), but upon restart of the service auto use all is off. What could be causing that.

2) Which is currently more serious, is that the service seems to get stuck in a bad state, and drops all the USB connections. Here are the logs I've gathered from the device.


user@client ~ $ sudo vhclientx86_64 -t "LIST"
IPC client timeout waiting for server...

user@client ~ $ ps aux |grep vh
root 1089 0.0 0.4 12508 9588 ? Ssl 11:31 0:08 /usr/sbin/vhclientx86_64 -n -c /root/.vhui


user@client ~ $ cat /var/log/syslog | grep usb
....
Jul 23 15:45:08 client : ValidateParameters: Note: InterfaceID 0000000001C37FC0 for question VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV) not currently found in active interface list
Jul 23 15:45:08 client : ValidateParameters: Note: InterfaceID 0000000001C37FC0 for question VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT) not currently found in active interface list
Jul 23 15:45:09 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV)
Jul 23 15:45:09 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT)
Jul 23 15:45:09 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV)
Jul 23 15:45:09 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT)
Jul 23 15:45:12 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV)
Jul 23 15:45:12 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT)
Jul 23 15:45:21 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV)
Jul 23 15:45:21 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT)
Jul 23 16:45:21 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (SRV)
Jul 23 16:45:21 client : SendQueries: No active interface 0000000001C37FC0 to send old question: 0000000001C37FC0 VirtualHere\032USB\032Sharing._vhusb._tcp.local. (TXT)

#2

1. The config file should be saved on startup and handle reboot etc while retaining settings. The client will log the information about the path it uses when it starts like "Using config at /root/.vhui etc or something similar should be in sylog. Can you verify that is appearing in the log ? If you are running the client as a daemon then those parameters -c etc must be in the vhusbpin script under etc/init.d.
2. What os is the client running on? E.g a recent ubuntu or something? It needs to be pretty recent, usbip in the linux kernel was quite buggy in ubuntu 12.04, later builds are much better. That message is actually from apple bonjour that is included in the virtualhere client, it seems your network is dropping or something.

Seems something strange is going on with your setup. Try this

1. On your pi, make sure you have the latest firmware like so:

sudo apt-get update;sudo apt-get upgrade -y;sudo rpi-update;sync;sudo reboot and run virtualhere server on the reboot

2. On your client use something recent like ubuntu 14.04 or 15.. or a similar os like debian. Dont use an old linux like redhat as the kernel is pretty old 2.6 something.

#3

I upgraded the firmware on my pi last week, and my client is running on Ubuntu 14.04.2.

My init script is running the following on start
/usr/sbin/vhclientx86_64 -n -c /root/.vhui

I do see Using config at /root/.vhui in my syslog when the process starts.

#4

Hmm should be fine then, i think your network is flakey , thats my guess, its dropping out randomly, can you try it on another network port or another pi instance if you have one. Although virtualhere should handle flakey networks, can you try the client on a windows machine and see if its ok...that may give a better error code, have a look in the gui Right click USB Hubs -> System Messages and see what it says in there.

#5

After some weeks of letting this run, I'm still seeing the config file get overwritten, but not on every reboot, just occasionally.

The server seems to be rock solid, and once I'm connected everything works well (with the exception of the client dying, but that might have been the kernel version, I've upgraded and am testing).

Is there any reason I would see the AutoShare option get turned back to 0 on a non-clean shutdown? My file generally looks like this:
[AutoShare]
All=1

But after a non-clean shutdown (possibly others as well), it looks like this:
[AutoShare]
All=0
UUID=0
UUID.DEVICEID=0
UUID.DEVICEID=0

#6

Sound like a bug I'm away for about 5 days and will look at this when I get back

#7

So I have the issue with the config file being overwritten, which you are looking at.

However, it also appears the client dying is continuing to happen on the new kernel version as well. Here is what I am seeing
vhclientx86_64 -t "LIST"
IPC client timeout waiting for server...

sudo service usbip restart
vhclientx86_64 -t "LIST"
VirtualHere IPC, below are the available devices:
(Number in brackets = address, * = Auto-Use)

Android Hub (android-pi-1.lab.example.com:7575)
--> Android (4294968448)
--> Android (4294978870)
--> Android (4294968447)
--> Android Phone (4294978567)
--> Nexus 5 (4294968417)
--> SAMSUNG_Android (4294968418)
--> Nexus 7 (4294968451)

Auto-Find currently off
Auto-Use All currently off
Reverse Lookup currently off
VirtualHere is running as a service

I just upgraded to 14.04 and am running the 3.16.0-46-generic kernel. Is there a more upgraded kernel I should try, or is there some more info I can gather?

#8

Actually when it crashes it will write the CPU instruction pointer to syslog like this

Aug 26 23:49:05 ubuntu kernel: [ 356.973183] vhclientx86_64[9346]: segfault at 0 ip 000000000045bc21 sp 00007ffec2a124d0 error 6

Could you take a look in your syslog, and send me that line

#9

Also i forgot to add regarding the zeros written to the config file..I cannot control what gets written on the crash, its best if i can fix the crash in the first place. I suspect again its in the kernel but hopefully you can give me an Instruction Pointer and i can check in my code.

#10

I just checked all the syslog files, and I'm not seeing any mention of segfault. Is there a Logging level I need to set? The machine was also off due to a power outage this weekend, so I'm not currently seeing the problem, but I'll check the logs again when I see it again.

#11

No you dont need to set any special log level. I tested it on standard ubuntu 14.04 , triggering an exception and it printed that line with the instruction pointer

#12

I am still seeing this, but I don't see in anything in syslog, steps are below:

vhclientx86_64 -t "LIST"
IPC client timeout waiting for server...

sudo grep vhclient /var/log/syslog*
/var/log/syslog.1:Aug 31 10:33:55 hostname-client VirtualHere: IPC available at /tmp/vhclient