[Libusbx-devel] libusb.org tickets discussion

Hans de Goede hdegoede at redhat.com
Mon Apr 16 04:16:10 EDT 2012


Hi,

On 04/14/2012 08:02 AM, Xiaofan Chen wrote:
> http://www.libusb.org/report/12?sort=type&asc=1&page=1
>
> Ticket	 Summary	 Type	 Owner	 Status	 Created
> ++++++++
> #2	ISO C++ forbids zero-size array 'iso_packet_desc'	
> defect		new	07/31/09
>
> Safe to ignore for now?

Yes / +1

> ++++++++
>
> #3	libusb:error [__open_sysfs_attr], errno=2	
> defect               new	07/31/09
>
> No details from the original poster and not so sure about if it
> is relevant any more.

I've actually seen this myself recently, this happens when we hit
a race where a device goes away while we're enumerating it. We should
change the code to catch errno==ENOENT and assume ENODEV in that case
(and thus not complain).

> ++++++++
>
> #6	Zero Length Packet issue	
> defect		new	08/20/09
>
> Is it really necessary to replicate this to other OS? Probably
> nice to copy the ticket to libusbx.

Lets duplicate this one, I think Peter has recently done some work
on this, but we want to make sure we get this right, I know from
experience that sometimes it is useful to get told about
0 sized isoc packets , so this is a real issue.

> ++++++++
>
> #77	get_max_packet_size returns bad value when alternative interface is used	
> defect		new	12/08/10
>
> Not worth fixing?

The problem is we cannot fix this without breaking API/ABI.
Note that we already have 2 max packet size functions:

libusb_get_max_packet_size()
libusb_get_max_iso_packet_size()

Where libusb_get_max_iso_packet_size() fixes what really is a bug in
libusb_get_max_packet_size(), the problem with the second one is that it
does not take the alt-setting into account, which is really stupid since
for isoc endpoints the max packet size for alt 0 (which it will most likely
return) is always 0. So in essence libusb_get_max_iso_packet_size() is
completely broken ...

So at a minimum we should fix the docs to explain how broken both of these
are. Ideally we should add a 3th one so that we can say in the docs to
just use the 3th one ...

> +++++++
>
> #80	Lose a packet when there is null packet in an isochronous transfer
> (libusb-1.0.8, linux 2.6.18)	
>
> defect	pvergain	new	12/14/10
>
> No details from the original poster and not so sure about if it is
> relevant any more.

As I already mentioned in the bug report I've audited all relevant code
paths and I cannot find any issues. Also I've not hit this myself while
I've been testing libusb with tons of isoc devices (through usb
redirection). So I say lets not copy this one.

> ++++++++
>
> #88	Crash during cancellation of transfer when device disconnected	
> defect	hjelmn	accepted	01/18/11
>
> Good to copy the ticket to libusbx.

+1

> +++++++++
>
> #101	Income data is lost after a timeout reading from libusb_interrupt_transfer	
> defect		new	02/24/11
>
> No details from the original poster and not so sure about if it is
> relevant any more.

This is a weird one, esp. since in general you should not set a timeout
on interrupt transfers, ie who knows when the user will next move the mouse /
press a key, it may be seconds, but it also may be hours ...

I vote for not copying this one.

> +++++++++
> #123	libusb_handle_events_timeout() only handles one event	
> defect		new	10/05/11
>
> Not a bug in reality.

Actually this one is a real bug, I noticed this myself quite a long time
ago, and under Linux we indeed only handle 1 event per call. So we need to
either fix the docs (what do the Windows / Mac OS X backends do?), or fix
the Linux code. So lets copy this one over.

> ++++++++
>
> As for the enhancement requests, maybe it is a good idea to copy all
> of them except #107.

+1

> How do you like the plan?

Overall I like it, also see my comments above.

Regards,

Hans




More information about the libusbx mailing list