Bug 140125
| Summary: | PalmOS USB Hotsync Interrupted by Kernel | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Christopher A. Williams <chrisw> | ||||||
| Component: | kernel | Assignee: | Dave Jones <davej> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | |||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 3 | CC: | agilmore, arb, bowe, daz, fedora, garciara, henkler, jake, michael, mm+rhbz, moneta.mace, pcfe, pebolle, pfrields, ralston, shubnub, slacker, strombrg, s.zachariadis | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | i686 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2005-01-04 18:28:17 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
I also have the same problem after upgrading to kernel
2.6.9-1.678_FC1smp kernel & udev-039-10.FC3.2 this morning. Palm
Tungsten W had been synching perfectly before today on FC3 by doing
the following.
1. Created a file in /etc/udev/rules.d called 10-local.rules
KERNEL="ttyUSB0", SYSFS{product}="Palm Handheld", NAME="%k",
SYMLINK="pilot"
2. Created a symlink from /dev/ttyUSB0 to /etc/udev/devices/pilot
ln -s /dev/ttyUSB0 /etc/udev/devices/pilot
However after the upgrade when activating pilot-xfer, the same
segmentation fault/error happens as reported above. Here is my desmg
output...
visor 3-2:1.0: Handspring Visor / Palm OS converter detected
usb 3-2: Handspring Visor / Palm OS converter now attached to ttyUSB0
usb 3-2: Handspring Visor / Palm OS converter now attached to ttyUSB1
usbcore: registered new driver visor
drivers/usb/serial/visor.c: USB HandSpring Visor / Palm OS driver v2.1
Unable to handle kernel NULL pointer dereference at virtual address
00000004
printing eip:
022bafbf
*pde = 00004001
Oops: 0000 [#1]
SMP
Modules linked in: visor usbserial udf parport_pc lp parport autofs4
i2c_dev i2c_core sunrpc ipt_REJECT ipt_state ip_conntrack
iptable_filter ip_tables vfat fat button battery ac md5 ipv6 uhci_hcd
ehci_hcd emu10k1_gp snd_intel8x0 gameport snd_mpu401_uart snd_emu10k1
snd_rawmidi snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_seq_device
snd_ac97_codec snd_page_alloc snd_util_mem snd_hwdep snd soundcore
ne2k_pci 8390 tulip floppy dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod
CPU: 1
EIP: 0060:[<022bafbf>] Not tainted VLI
EFLAGS: 00010002 (2.6.9-1.678_FC3smp)
EIP is at _spin_lock_irqsave+0x7/0x45
eax: 00000000 ebx: 00000202 ecx: 22b59b60 edx: 05672280
esi: 00000000 edi: 0378c700 ebp: 036e2e00 esp: 08684ec8
ds: 007b es: 007b ss: 0068
Process jpilot (pid: 3767, threadinfo=08684000 task=05166b10)
Stack: 00000000 0378c700 22b56070 10384000 036e2e00 0378c700 00000000
22b8f2e5
05672280 ffffffed 05672280 10384000 00000000 021ed74c 00000802
0bc00000
10384000 00000000 036eb804 08684000 00000000 05db3090 0215b549
05672280
Call Trace:
[<22b56070>] visor_open+0x70/0x17a [visor]
[<22b8f2e5>] serial_open+0xa5/0xf9 [usbserial]
[<021ed74c>] tty_open+0x135/0x24c
[<0215b549>] chrdev_open+0x14c/0x187
[<0215355d>] dentry_open+0xcd/0x1a5
[<0215348a>] filp_open+0x36/0x3c
[<02153789>] sys_open+0x31/0x7d
Code: <3>Debug: sleeping function called from invalid context at
include/linux/rwsem.h:43
in_atomic():0[expected: 0], irqs_disabled():1
[<0211dd32>] __might_sleep+0x7d/0x87
[<0214f041>] rw_vm+0xe5/0x28c
[<022baf94>] _spin_unlock+0xf/0x27
[<022baf94>] _spin_unlock+0xf/0x27
[<0214f4a5>] get_user_size+0x30/0x57
[<022baf94>] _spin_unlock+0xf/0x27
[<021061c4>] show_registers+0x115/0x16c
[<0210635b>] die+0xdb/0x16b
[<02120424>] vprintk+0x136/0x14a
[<02119aa7>] do_page_fault+0x421/0x5e7
[<022bafbf>] _spin_lock_irqsave+0x7/0x45
[<0211cd57>] __wake_up+0x29/0x3c
[<0213cf18>] __rmqueue+0xc1/0x10c
[<0213cfbe>] rmqueue_bulk+0x5b/0x65
[<0213d34f>] buffered_rmqueue+0x17d/0x1a5
[<02119686>] do_page_fault+0x0/0x5e7
[<021e007b>] acpi_ec_read+0x1e/0xdc
[<022bafbf>] _spin_lock_irqsave+0x7/0x45
[<22b56070>] visor_open+0x70/0x17a [visor]
[<22b8f2e5>] serial_open+0xa5/0xf9 [usbserial]
[<021ed74c>] tty_open+0x135/0x24c
[<0215b549>] chrdev_open+0x14c/0x187
[<0215355d>] dentry_open+0xcd/0x1a5
[<0215348a>] filp_open+0x36/0x3c
[<02153789>] sys_open+0x31/0x7d
Bad EIP value.
<6>usb 3-2: USB disconnect, address 2
visor 3-2:1.0: device disconnected
it lools like a bug in kernel. i assign it to correct component. *** Bug 139594 has been marked as a duplicate of this bug. *** Updated to kernel-2.6.9-1.681_FC3. Palm now will connect in a hotsync, but gpilotd now dies unexpectedly. ttyUSB0 and ttyUSB1 also do not release properly when the hotsync dies. The only way to release USB0 and USB1 seems to be to logoff and then log back on. Updated output from dmesg (with comments o what I did) is below: Started a hotsync: usb 4-2: new full speed USB device using address 4 visor 4-2:1.0: Handspring Visor / Palm OS converter detected usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB0 usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB1 usb 4-2: USB disconnect, address 4 [Palm disconnectes by itself here as if hotsync completed, but in fact, gpilotd and associated pplets still think hotsync is going] visor 4-2:1.0: device disconnected [Attempted second hotsync - Note tht palm now connects to ttyUSB2 and ttyUSB3 because ttyUSB0 and ttyUSB1 are still tied up...] usb 4-2: new full speed USB device using address 5 visor 4-2:1.0: Handspring Visor / Palm OS converter detected usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB2 usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB3 [Manually cancel hotsync from the palm itself...] usb 4-2: USB disconnect, address 5 visor ttyUSB2: Handspring Visor / Palm OS converter now disconnected from ttyUSB2 visor ttyUSB3: Handspring Visor / Palm OS converter now disconnected from ttyUSB3 visor 4-2:1.0: device disconnected [Attempt to logoff. Eventually must Ctrl-Alt-Backspace to kill session] visor ttyUSB0: Handspring Visor / Palm OS converter now disconnected from ttyUSB0 visor ttyUSB1: Handspring Visor / Palm OS converter now disconnected from ttyUSB1 usb 1-1: control timeout on ep0in [Then I log back on to collect output from dmesg] Created attachment 107191 [details]
Debug log of attempted sync with Treo 90
Happens to me too, on 2.6.9-1.678_FC3smp with a Treo 90.
Attached is a log with the debug flags turned on in the usbserial and visor
modules.
By the way, you don't have to log off when this happens. Do:
$ fuser -k /dev/pilot
and it will kill programs that have it open (if you have permission :)
I'm having a similar issue. Hitting the hotsync button on my T3 prompts the kernel to create the devices, but then, if I do something like "pilot-xfer -l", the pilot-xfer lists the first 17 files, then hangs. The T3 acts as if the sync was interrupted. The kernel acts as if the USB device was disconnected. If I try syncing within jpilot, it always hangs on the ToDo list. This happens both on my laptop and workstation. I'm using FC3 and the kernel-smp-2.6.9-1.681_FC3 and udev-039-10.FC3.2 packages. I keep everything updated at least daily. This did work before I went away on vacation on 11/12. I'm having much the same problem, but I've managed to work around it by setting up netsync over wifi with PPTP and OpenVPN tunneling. If you have a Wifi or Bluetooth unit, you may be able to do something similar. Devil Linux is a really easy way to set up VPN tunnels. Still, it'd be nice to have USB sync functionality back, so I can charge as I sync, rather than drain my batteries really fast as I sync. :) I'm on a Tungsten C with update 3 (english) on it. (can the bug owner change the desc to something like: "PalmOS USB Hotsync interrupted by kernel"?) Yes - it is the same issue. Sequence is: 1 - palmos device is connected and hotsync pressed 2 - usb device and ttyUSB0/1 appear 3 - program connects, traffic happens for a bit 4 - <something goes wrong> 5 - usb device disappears, error appears on palm 6 - user apps hung waiting on orphan ttyUSB devices 7 - user apps are killed, close handles, ttyUSB devices cleaned up. Check /var/log/messages - you'll see entries similar to: kernel: usb 2-1: Handspring Visor / Palm OS converter now attached to ttyUSB0 kernel: usb 2-1: Handspring Visor / Palm OS converter now attached to ttyUSB1 kernel: usbcore: registered new driver visor kernel: drivers/usb/serial/visor.c: USB HandSpring Visor / Palm OS driver v2.1 kernel: usb 2-1: USB disconnect, address 2 kernel: visor 2-1:1.0: device disconnected kernel: visor ttyUSB0: Handspring Visor / Palm OS converter now disconnected from ttyUSB0 kernel: visor ttyUSB1: Handspring Visor / Palm OS converter now disconnected from ttyUSB1 May or may not be the same problem, but this happens very reliably on my newly-upgraded to FC3 system. 1. push hotsync button on T3 attached via USB (with correct udev setup) 2. dlpsh at command line 3. ls at dlpsh shell 4. listing of installed files begins, 5. listing stops, and after 30 seconds or so, the Palm disconnects I am running nvidia kernel module, so if this even remotely points at issues there, I will gladly retry with untainted kernel. > (can the bug owner change the desc to something like: "PalmOS USB
> Hotsync interrupted by kernel"?)
I opened the bug - no problem to change it with me if that's where the
issue lies.
Of note, I'm also running the NVidia "tainted" kernel. I rolled back
to a "pure" kernel for a bit and still had the issue, only with slower
video...
Can report the exact same new issues for me when upgrading to kernel-2.6.9-1.681_FC3smp from 2.6.9-1.678_FC1smp reported earlier by me. With kernel-2.6.9-1.681_FC3smp the hotsynch at least starts now with pilot-xfer, j-pilot etc, but dies soon after as the kernel disconnects the USB device for whatever reason. There isn't enough time for the hotsync to finish. Running dmesg I get... usb 3-2: new full speed USB device using address 4 visor 3-2:1.0: Handspring Visor / Palm OS converter detected usb 3-2: Handspring Visor / Palm OS converter now attached to ttyUSB0 usb 3-2: Handspring Visor / Palm OS converter now attached to ttyUSB1 usb 3-2: USB disconnect, address 4 visor 3-2:1.0: device disconnected visor ttyUSB0: Handspring Visor / Palm OS converter now disconnected from ttyUSB0 visor ttyUSB1: Handspring Visor / Palm OS converter now disconnected from ttyUSB1 Hope its fixed soon. Am having hotsync withdrawal symptoms! :-) cheers Daryn i have fc3 kernel 2.6.9 and i'm trying to sync my palm pilot. i've created the link: ln -s /dev/ttyUSB1 /dev/pilot whenever i hit the sync on the palm pilot i can see the devices: /dev/ttyUSB0 /dev/ttyUSB1 and i'm trying to setup gnome pilot. i get to the "Initial Sync" where asks to hit the hotsync, and nothing.. i also tried this: # pilot-xfer -p /dev/pilot -L Listening to port: /dev/pilot Please press the HotSync button now.... Connected Reading list of databases in RAM and ROM... AddressDB DatebookDB ExpenseDB MailDB MemoDB ConnectionMgrDB NetworkDB npadDB PhoneRegistryDB ToDoDB Address Book Calculator clkp Card Info Clipper Date Book Dial and waits.. This bug is also reproducible on FC2 using the kernel 2.6.9-6 (FC2). I'm using a Zire 31 and I am syncing it with MultiSync. Bug is also reproducible in pilot-link command line tools. Trying 'dlpsh' and doing an 'ls' command, the listing of palm dbs would halt after listing a few of them. I can reliably (100%) reproduce this bug on an i686 and a x86_64 system with a Palm Tungsten T3... I'm experiencing exactly the same on an Athlon-XP 2100 running kernel-2.6.9-1.678_FC3 attempting to sync with a Sony Clie PEG-SJ22/E. I reset a Zire71 and try syncing, disabling all conduits and deleting all files from PC. Syncs. Enabled time conduit. Hangs up. Disabled time and copy files to PC. Started copying first file and hangs up. Deleted that file from PC. Reset and try again. The same with all files. Working on 2.6.9-1.681_FC3smp. I have the same issues as described by Pete Toscano and Michael Brown, with a Palm T3. It was all working fine on my system under FC2, and yesterday I upgraded to FC3 with all the latest updates, and now I cannot sync :( With my Samsung i500 I've been able to make it work in kernel version 2.6.9-1.667. This was a downgrade for me. Syncing failed in 2.6.9-1.681_FC3 and 2.6.9-1.678_FC3. The behaviour that I am seeing is the same as in comment #11 Created attachment 107942 [details]
syslog of an interrupted Palm T3 sync
this is kernel 2.6.9-1.681_FC3 is with USB_DEBUG enabled
I can reproduce the interrupted sync on 3 different FC3 machines (all
tested with 2.6.9-1.681_FC3).
On one machine I recompiled the kernel with CONFIG_USB_DEBUG=y, this
machine shows loads of
kernel: drivers/usb/input/hid-core.c: input irq status -84 received
This machine also uses a USB mouse (hence my logs are full of these
errors), mouse works though.
On another machine, I replaced FC3 with FC2 (release kernel), the
problem disappeared.
So it would seem we really broke something in USB between FC2 and FC3.
The Attachment #107942 [details] shows an interrupted sync on the machine that
has USB_Debug enabled
I have had similar problems on 1.681_FC3 (comment #4 is very familiar). The problem can be fixed by reversing the patchs to usb/drivers/serial/visor.c in the Fedora RPM and rebuilding. These changes are patch of the compressed -ac10 patch so cannot be directly grepped for. I simply deleted the visor changes from the - ac10 patch, recompressed it then rebuilt and installed the RPM. This brought pilot-xfer and gpilotd back to life. can you try the -698 kernel in updates-testing and see how that fares? Comment in bug #140005 states that kernel fixes the problem. Will try it here. Confirmed, booting with kernel 2.6.9-1.698_FC3, and setting selinux=disable (because portmap, ntpd, syslog, others would not start otherwise, and my home is NFS), I have successfully synced with the gnome conduits, and done a full dlpsh ls listing with no problems, which both failed previously. Thanks for the tip, and reenforcing the idea on that other bug. Confirmed as well, test machine lists pilot contents just fine with "pilot-xfer -p /dev/ttyUSB1 -l" under 2.6.9-1.698_FC3. I'll put this kernel on my work machine later and will post results here. Works on the main machine as well. I still see "kernel: drivers/usb/input/hid-core.c: input irq status -84 received" but a sync and a backup of the Palm T3 with jpilot went through fine anyway. I can confirm as well, that 2.6.901.698_FC3 does fix the USB problem, but it also breaks ndiswrapper somehow. Who should I report that break in the development kernel to? *** Bug 141956 has been marked as a duplicate of this bug. *** Just updated FC3 to kernel 2.6.9-1.724. Problem appears to be fixed with this version. OK.. this is still a problem with FC4 and 2.6.12-1.1398_FC4. Is it ever getting fixed? This appears to be a recurrence of the 2.6.9 bug with 2.6.12. It worked right for 2.6.10 and 11. Please reopen this bug. FWIW (and not reopening bug on purpose) I've had much better results on FC6 in the 3 days I've had it installed now. In other words 2.6.18-1.2798.fc6 works for me. With older versions I had to actually reset the Palm just before sync to have any chance of being able to retrieve my DatebookDB (which at 185K is admittedly rather big), guess this has to do with the on-the-fly conversion that takes place in PalmOS 5. By the looks of it, 2.6.18-1.2798.fc6 is simply more patient on the timeout side. Ah well, only worked for a while, this morning I had the first instance of the FC6 box not syncing either until I did a soft reset :-( |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041111 Firefox/1.0 Description of problem: Hotsync on FC3 with a palm pilot fails with a null pointer exception. This happens with the following entry in /etc/udev/rules.d/10-local.rules: KERNEL="ttyUSB1",MODE="666",SYMLINK="pilot" There seems to be a lot of disk activity and then nothing. This hotsync appers to have worked prior to updates from the last 4 to 5 days. Possibly one of these caused an issue. Version-Release number of selected component (if applicable): pilot-link-0.11.8-8 How reproducible: Always Steps to Reproduce: 1. Configure Palm Tungsten T to hotsync via USB port 2. Configure 10-local.rules as described above 3. Perform a hotsync operation Actual Results: The hotsync fails. Expected Results: Hotsync should be successful. Additional info: output from dmesg during the hotsync attempt is as follows: usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB0 usb 4-2: Handspring Visor / Palm OS converter now attached to ttyUSB1 usbcore: registered new driver visor drivers/usb/serial/visor.c: USB HandSpring Visor / Palm OS driver v2.1 Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: 42bb506c *pde = 00000000 Oops: 0000 [#1] Modules linked in: visor usbserial nvidia(U) parport_pc lp parport autofs4 i2c_dev i2c_core sunrpc md5 ipv6 dm_mod joydev button battery ac usblp ohci1394 ieee1394 usb_storage ohci_hcd ehci_hcd snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore sis900 floppy ext3 jbd sata_promise libata sd_mod scsi_mod CPU: 0 EIP: 0060:[<42bb506c>] Tainted: P VLI EFLAGS: 00010006 (2.6.9-1.678_FC3) EIP is at visor_open+0x6c/0x24c [visor] eax: 41c30400 ebx: 00000206 ecx: 42bb8fc0 edx: 378a7c80 esi: 00000000 edi: 41c30400 ebp: 1d3a6140 esp: 223e6ed0 ds: 007b es: 007b ss: 0068 Process gpilotd (pid: 9305, threadinfo=223e6000 task=2cccd1f0) Stack: 41c30400 1d3a6140 080c7000 00000000 42ab02d5 378a7c80 ffffffed 378a7c80 080c7000 00000000 0221cd49 00000802 0bc00001 080c7000 00000001 223e6000 39e51604 0906a93c 00000000 021702b2 00000000 378a7c80 00000001 378a7c80 Call Trace: [<42ab02d5>] serial_open+0x95/0xd9 [usbserial] [<0221cd49>] tty_open+0x132/0x360 [<021702b2>] chrdev_open+0x3bd/0x458 [<02164882>] dentry_open+0xbd/0x180 [<021647bf>] filp_open+0x36/0x3c [<02164cd5>] sys_open+0x31/0x7d Code: <3>Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 in_atomic():0[expected: 0], irqs_disabled():1 [<0211c937>] __might_sleep+0x7d/0x8a [<0215e42a>] rw_vm+0x216/0x482 [<42bb5041>] visor_open+0x41/0x24c [visor] [<42bb5041>] visor_open+0x41/0x24c [visor] [<0215eb7c>] get_user_size+0x30/0x57 [<42bb5041>] visor_open+0x41/0x24c [visor] [<0210682b>] show_registers+0x109/0x15e [<02106a2f>] die+0x14a/0x241 [<0211937e>] do_page_fault+0x0/0x511 [<0211937e>] do_page_fault+0x0/0x511 [<02119733>] do_page_fault+0x3b5/0x511 [<42bb506c>] visor_open+0x6c/0x24c [visor] [<021c3c10>] avc_has_perm+0x3f/0x49 [<02146cbc>] buffered_rmqueue+0x1dd/0x200 [<0211937e>] do_page_fault+0x0/0x511 [<42bb506c>] visor_open+0x6c/0x24c [visor] [<42ab02d5>] serial_open+0x95/0xd9 [usbserial] [<0221cd49>] tty_open+0x132/0x360 [<021702b2>] chrdev_open+0x3bd/0x458 [<02164882>] dentry_open+0xbd/0x180 [<021647bf>] filp_open+0x36/0x3c [<02164cd5>] sys_open+0x31/0x7d Bad EIP value. <6>usb 4-2: USB disconnect, address 4 visor 4-2:1.0: device disconnected