Steve Ballantyne
2015-Jan-06 20:44 UTC
[Nut-upsuser] libusb drops connection to my Tripp Lite SMART500T1U
Hey Charles, Many months ago you assisted me in making some code changes to get my Tripp Lite up and running. Thank you for that. Those changes you committed to the repository work very well. I just built a new image for a Raspberry Pi running the latest Raspbian OS and the latest nut-master. I have everything working ... except I seem to be losing my device periodically. So if I enable my notifications, I get notified all day and night that the device was lost and then found. I have built up 22MB's worth of a log file and I am hoping it provides some clues. It looks to me like the Tripp Lite is just disconnecting itself, which wouldn't surprise me. These devices are not known for their grand monitoring abilities. The word "Smart" probably doesn't belong in the title. But they are 1U, cheap, and the batteries last around 3+ years. I ran this ... /usr/local/ups/bin/tripplite_usb -a SMART500RT1U -u pi -DDDDD 2>&1 | tee driver-debug-log.txt Does this snippet of a failure tell you anything? Is there something I can do to tell the libusb to wait a little longer for the device to come back? 3116.403776 send_cmd(msg_len=2, type='P') 3116.403858 send_cmd: sending 3a 50 af 0d 00 00 00 00 '.P......' 3116.506490 send_cmd: received 50 30 30 35 30 30 58 0d 'P00500X.' (OK) 3117.449881 send_cmd(msg_len=2, type='S') 3117.451603 send_cmd: sending 3a 53 ac 0d 00 00 00 00 '.S......' 3118.555755 libusb_get_interrupt: Connection timed out 3118.557454 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3119.560329 libusb_get_interrupt: Connection timed out 3119.562556 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3120.565296 libusb_get_interrupt: Connection timed out 3120.567039 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3121.569882 libusb_get_interrupt: Connection timed out 3121.571296 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3122.572219 libusb_get_interrupt: Connection timed out 3122.573936 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3123.576018 libusb_get_interrupt: Connection timed out 3123.577726 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3124.579742 libusb_get_interrupt: Connection timed out 3124.581504 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3125.584126 libusb_get_interrupt: Connection timed out 3125.585831 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3126.589461 libusb_get_interrupt: Connection timed out 3126.590824 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3127.591933 libusb_get_interrupt: Connection timed out 3127.593697 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 53 ac 0d 00 00 00 00 '.S......' 3127.698122 send_cmd: received 53 01 04 00 00 64 00 0d 'S....d..' (OK) 3127.699825 send_cmd(msg_len=2, type='D') 3127.701707 send_cmd: sending 3a 44 bb 0d 00 00 00 00 '.D......' 3127.806507 send_cmd: received 44 00 7e 00 89 0d 00 00 'D.......' (OK) 3127.808187 send_to_all: SETINFO input.voltage "126" 3127.810425 send_cmd(msg_len=2, type='M') 3127.812741 send_cmd: sending 3a 4d b2 0d 00 00 00 00 '.M......' 3127.915890 send_cmd: received 4d 00 78 00 7f 0d 00 00 'M.x.....' (OK) 3127.917615 send_cmd(msg_len=2, type='T') 3127.919426 send_cmd: sending 3a 54 ab 0d 00 00 00 00 '.T......' 3128.023292 send_cmd: received 54 26 00 02 58 01 58 0d 'T...X.X.' (OK) 3128.024308 send_cmd(msg_len=2, type='L') 3128.024421 send_cmd: sending 3a 4c b3 0d 00 00 00 00 '.L......' 3128.127420 send_cmd: received 4c 1a 00 06 07 58 58 0d 'L....XX.' (OK) 3128.129113 send_cmd(msg_len=2, type='D') 3128.130933 send_cmd: sending 3a 44 bb 0d 00 00 00 00 '.D......' 3128.235060 send_cmd: received 44 00 7f 00 89 0d 00 00 'D.......' (OK) 3128.236831 send_to_all: SETINFO ups.debug.D "00 7f 00 89 0d 00 00 '.......'" 3128.236831 send_to_all: SETINFO ups.debug.D "00 7f 00 89 0d 00 00 '.......'" 3128.239120 send_cmd(msg_len=2, type='V') 3128.240055 send_cmd: sending 3a 56 a9 0d 00 00 00 00 '.V......' 3128.241548 libusb_set_report() returned 0 instead of 8 3128.243292 Error reading 'V' value: Device detached? (error 0: error sending control message: Broken pipe) 3128.244404 Reconnect attempt #1 3128.244490 =================================================3128.244589 = device has been disconnected, try to reconnect 3128.244642 =================================================3128.246158 Checking device (09AE/0001) (001/005) 3128.259502 - VendorID: 09ae 3128.261195 - ProductID: 0001 3128.263122 - Manufacturer: Tripp Lite 3128.264892 - Product: TRIPP LITE SMART500RT1U 3128.266656 - Serial Number: unknown 3128.268403 - Bus: 001 3128.270168 Trying to match device 3128.271725 Device matches 3128.273009 failed to claim USB device: could not claim interface 0: Device or resource busy 3128.274892 detached kernel driver from USB device... 3128.276850 nut_usb_set_altinterface: skipped usb_set_altinterface(udev, 0) 3128.276981 Successfully reconnected 3128.277047 send_cmd(msg_len=2, type=' 3128.277130 send_cmd: sending 3a 00 ff 0d 00 00 00 00 '........' 3129.380489 libusb_get_interrupt: Connection timed out 3129.383071 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3130.385543 libusb_get_interrupt: Connection timed out 3130.387246 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3131.389801 libusb_get_interrupt: Connection timed out 3131.391494 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3132.394186 libusb_get_interrupt: Connection timed out 3132.395910 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3133.397861 libusb_get_interrupt: Connection timed out 3133.399565 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3134.401450 libusb_get_interrupt: Connection timed out 3134.403229 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3135.405339 libusb_get_interrupt: Connection timed out 3135.407107 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3136.410031 libusb_get_interrupt: Connection timed out 3136.411723 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3137.413988 libusb_get_interrupt: Connection timed out 3137.415366 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3138.416130 libusb_get_interrupt: Connection timed out 3138.417839 libusb_get_interrupt() returned 0 instead of 8 while sending 3a 00 ff 0d 00 00 00 00 '........' 3138.521206 send_cmd: received 00 30 05 58 58 58 58 0d '.0.XXXX.' (OK) 3138.521206 send_cmd: received 00 30 05 58 58 58 58 0d '.0.XXXX.' (OK) 3138.522934 Using binary SMART protocol (3005) 3138.525374 send_cmd(msg_len=3, type='W') 3138.527233 send_cmd: sending 3a 57 00 a8 0d 00 00 00 '.W......' 3138.632841 send_cmd: received 57 00 0d 00 00 00 00 00 'W.......' (OK) 3138.634710 send_cmd(msg_len=2, type='S') 3138.636503 send_cmd: sending 3a 53 ac 0d 00 00 00 00 '.S......' 3138.739860 send_cmd: received 53 01 04 00 00 64 00 0d 'S....d..' (OK) 3138.741749 send_cmd(msg_len=2, type='P') 3138.743719 send_cmd: sending 3a 50 af 0d 00 00 00 00 '.P......' 3138.848187 send_cmd: received 50 30 30 35 30 30 58 0d 'P00500X.' (OK) 3138.850157 send_cmd(msg_len=2, type='F') 3138.851952 send_cmd: sending 3a 46 b9 0d 00 00 00 00 '.F......' 3138.954509 send_cmd: received 46 32 39 41 46 20 41 0d 'F29AF.A.' (OK) 3138.956167 send_cmd(msg_len=2, type='V') 3138.957493 send_cmd: sending 3a 56 a9 0d 00 00 00 00 '.V......' 3139.061392 send_cmd: received 56 02 00 0c 01 58 58 0d 'V....XX.' (OK) 3139.063196 Switchable load banks: 1 3139.064568 send_cmd(msg_len=2, type='V') 3139.065869 send_cmd: sending 3a 56 a9 0d 00 00 00 00 '.V......' 3139.170280 send_cmd: received 56 02 00 0c 01 58 58 0d 'V....XX.' (OK) 3139.172323 send_cmd(msg_len=2, type='U') 3139.173975 send_cmd: sending 3a 55 aa 0d 00 00 00 00 '.U......' 3139.278420 send_cmd: received 55 ff ff 0d 00 00 00 00 'U.......' (OK) 3139.280069 Unit ID: 65535 3139.281899 send_cmd(msg_len=2, type='M') 3139.283788 send_cmd: sending 3a 4d b2 0d 00 00 00 00 '.M......' 3139.388433 send_cmd: received 4d 00 78 00 7f 0d 00 00 'M.x.....' (OK) 3139.390198 send_cmd(msg_len=2, type='T') 3139.392004 send_cmd: sending 3a 54 ab 0d 00 00 00 00 '.T......' 3139.496702 send_cmd: received 54 26 00 02 58 01 58 0d 'T...X.X.' (OK) 3139.498387 send_cmd(msg_len=2, type='P') 3139.500193 send_cmd: sending 3a 50 af 0d 00 00 00 00 '.P......' 3139.602964 send_cmd: received 50 30 30 35 30 30 58 0d 'P00500X.' (OK) 3139.604267 send_to_one: PONG 3139.606315 send_to_one: PONG 3139.608288 send_cmd(msg_len=2, type='S') 3139.608448 send_cmd: sending 3a 53 ac 0d 00 00 00 00 '.S......' 3139.711475 send_cmd: received 53 01 04 00 00 64 00 0d 'S....d..' (OK) 3139.713276 send_cmd(msg_len=2, type='D') 3139.714630 send_cmd: sending 3a 44 bb 0d 00 00 00 00 '.D......' 3139.818484 send_cmd: received 44 00 7c 00 89 0d 00 00 'D.......' (OK) 3139.818657 send_to_all: SETINFO input.voltage "124" 3139.819850 send_cmd(msg_len=2, type='M') Steve Ballantyne Network Engineer MCSE/MCDST; Novell CLA; LPIC-1; CTT+; A+; Network+; Linux+; Server+; I-Net+; Security+; SonicWALL CSSA
Charles Lepple
2015-Jan-07 02:46 UTC
[Nut-upsuser] libusb drops connection to my Tripp Lite SMART500T1U
On Jan 6, 2015, at 3:44 PM, Steve Ballantyne <steve.ballantyne at gmail.com> wrote:> Does this snippet of a failure tell you anything? Is there something > I can do to tell the libusb to wait a little longer for the device to > come back? > > 3118.555755 libusb_get_interrupt: Connection timed out > 3118.557454 libusb_get_interrupt() returned 0 instead of 8 while > sending 3a 53 ac 0d 00 00 00 00 '.S......'These timeouts are controlled by some #defines at the beginning of the driver: https://github.com/networkupstools/nut/blob/master/drivers/tripplite_usb.c#L231 Here is the actual loop: https://github.com/networkupstools/nut/blob/master/drivers/tripplite_usb.c#L527 So it is trying ten times to send, and for each send attempt, it tries to receive ten times. These numbers are somewhat arbitrary, and are probably tuned more for the OMNIVS1000, but feel free to adjust them, and let me know what you find out.> 3128.241548 libusb_set_report() returned 0 instead of 8 > 3128.243292 Error reading 'V' value: Device detached? (error 0: > error sending control message: Broken pipe) > 3128.244404 Reconnect attempt #1This one is different - "Broken pipe" does mean an actual disconnect signal, so there is no getting around this plus accompanying the "data stale" message. However, for the notifications, you could use "upssched" to only notify you if the UPS is disconnected for longer than the usual reconnection time. -- Charles Lepple clepple at gmail
Steve Ballantyne
2015-Jan-07 17:49 UTC
[Nut-upsuser] libusb drops connection to my Tripp Lite SMART500T1U
On Tue, Jan 6, 2015 at 9:46 PM, Charles Lepple <clepple at gmail.com> wrote:> However, for the notifications, you could use "upssched" to only notify you if the UPS is disconnected for longer than the usual reconnection time. >Hello Charles, For my purposes, I will take an even easier route to resolution ... I will just comment this line out of my upsmon.conf file. Because I guess I don't mind that it comes and goes. I just don't want to be notified about it. ;-) # NOTIFYFLAG NOCOMM I would like to get to the root of the problem though. I may tweak the code a bit and see if I can get better results. Although you are right about the broken pipe. If the device is "unplugging" ... not much you can do to fix that other than to just ignore it. Steve Ballantyne Network Engineer MCSE/MCDST; Novell CLA; LPIC-1; CTT+; A+; Network+; Linux+; Server+; I-Net+; Security+; SonicWALL CSSA