parser errors from ideviceinfo with iOS 4.2.6
-
Martin S.
- Tag set to libplist, parsing
- State changed from new to open
Unable to reproduce especially since iOS 4.2.6 is only for the CDMA iPhone 4 model.
I roughly remember we had such an issue and as you might see from the "parser error" lines it is about parsing the received plist messages.The main component to check here is libplist which spits out those errors you see due to apparently an empty character.
Please post your OS version and versions of installed packages, perhaps an update of libplist might solve this issue for you.
-
W. Trevor King
On Sat, Mar 12, 2011 at 09:51:29AM -0500, Martin S. wrote:
The main component to check here is libplist which spits out those errors you see due to apparently an empty character.
Ok. I'll check there once my wife returns from a trip with the phone ;).
Please post your OS version and versions of installed packages, perhaps an update of libplist might solve this issue for you.
OS: Gentoo
Kernel: gentoo-sources-2.6.37libimobiledevice-1.0.4
libplist-1.3
usbmuxd-1.0.6
libgcrypt-1.4.6
gnutls-2.11.6
fuse-2.8.5
libusb-1.0.8 -
hannes
I can confirm the behaviour with a iPod 4g with iOS 4.3
OS: Ubuntu (kernel: 2.6.35-28-generic)
libimobiledevice: 1.0.4-1ubuntu1~maverick1
libplist: 1.3-1
libusbmuxd: 1.0.6-1ubuntu1~maverick1
libgcrypt: 1.4.5-2ubuntu1
fuse: 2.8.4-1ubuntu1.3
libusb: 1.0.8-2 -
Martin S.
- Tag changed from libplist, parsing to ios 4.3, libplist, parsing
- Milestone set to 1.2.0 Release
- Milestone order changed from 190912 to 0
Thanks for confirmation hannes, so at least we should be able to reproduce and fix it without needing a CDMA iPhone 4.
However right now we have to wait for a 4.3 jailbreak in order to not loose "full debugging" possibilities on our testing devices.
Some things you might help us with meanwhile:
- Run idevicesyslog in parallel and post the lines of output during the error - Alter the ideviceinfo tool manually to dump the received plist to disk and post it here (so we can verify it's integrity) -
W. Trevor King
Alter the ideviceinfo tool manually to dump the received plist to disk and post it here (so we can verify it's integrity)
I've put in code to do this (http://www.physics.drexel.edu/~wking/code/git/gitweb.cgi?p=libimobi..., but I won't have the phone around for another two weeks to run it. A log file stores information from the crashing internal_plist_receive_timeout call.
-
hannes
(Your code segfaults when trying to open a file with fopen. Don't know why, don't care, did it with printf. I never claimed that i can program c or anything :) )
Here's the output of some similar debug code.
No idevicesyslog as far as I can tell. -
W. Trevor King
Is that output from a crashing run? I don't see anything resembling the
<string>s5l8930xthat my crashes mentioned. I also don't understand how you can have "plist debugged" but not "free and return" because nothing happens between the two printfs:
fprintf(fd, "plist debugged\n"); fflush(fd); res = PROPERTY_LIST_SERVICE_E_SUCCESS; } else { res = PROPERTY_LIST_SERVICE_E_PLIST_ERROR; } fprintf(fd, "free and return\n"); fflush(fd); -
Martin S.
Thanks, it appears that the plist is not fully send over from the device which of course results in parsing errors as the XML is not valid.
@hannes: I don't understand what you mean about idevicesyslog. Does the tool not show any output at all or what do you mean?
In such cases the device definitely reports the error in it's syslog.
Anyways, it looks like some low-level usbmux communication issue. -
W. Trevor King
it appears that the plist is not fully send over from the device
I may be missing something obvious, but the plist in hannes' dump looks like valid XML to me.
-
Martin S.
<string>s5l8930xHow is that valid? It would need to be
<string>s5l8930x</string>, right?
Not event talking about the fact that the previous two nodes are not closed either.The data of the plist between "begin content" and "end content" is clearly not valid XML.
Thus it is absolutely expected to cause parsing errors. -
W. Trevor King
Oops, I had been looking at the wrong file ;). Please disregard all of my previous comments about hannes' dump.
-
Piotr Wlodarczyk
I've got the same error on my iPad with 4.3 iOS when I try ideviceinfo or idevicebackup.
deb:~# ideviceinfo --debug
Entity: line 81: parser error : Char 0x0 out of allowed range<string>s5l8930x ^Entity: line 81: parser error : Premature end of data in tag string line 81
<string>s5l8930x ^Entity: line 81: parser error : Premature end of data in tag dict line 10
<string>s5l8930x ^Entity: line 81: parser error : Premature end of data in tag dict line 4
<string>s5l8930x ^Entity: line 81: parser error : Premature end of data in tag plist line 3
<string>s5l8930x -
Piotr Wlodarczyk
My libs (I hope this helps):
ifuse-1.1.1
libplist-1.3
libgpg-error-1.9
gnutls-2.8.6
libusb-1.0.8
usbmuxd-1.0.6
libgcrypt-1.4.6
libtasn1-2.9 -
Martin S.
Thanks for testing. I am still waiting for a jailbreak in order to be able to upgrade to iOS 4.3 to debug.
Meanwhile if one want's to help, please run the tool "idevicesyslog", then run "ideviceinfo --debug" in parallel.
Afterwards please supply any output of "idevicesyslog" at the time of the error.
The device's syslog should give us a hint at why transferring this PLIST from the device is not working correctly. -
Martin S.
- State changed from open to resolved
Thanks for reporting, the issue has been fixed in git master.
It appears iOS 4.2.6 and iOS 4.3 have a bug and we have added a workaround.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
