2007-01-25 10:29:52

by Emanuele Novelli

[permalink] [raw]
Subject: [Bluez-users] multithread / multi process use

Hello I'm new here, I searched for this issue but found nothing.

Using 2 threads or 2 process for reading a name of a 2 remote devices at
same time reports always the same name.
Is this a bug or the hci functions in library do not support concurrent use
?
(using 2.6.19 kernel on FC6 and bluez libs 3.7.1)

This is a simply way to reproduce this:

open a 2 shells and issue 2 commands at same time

hcitool name <bdaddress of a device close to you>

they both report the same name

here an HCI dump of what's happening

2007-01-25 11:15:06.093319 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
2007-01-25 11:15:06.114456 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:15:06.712794 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
2007-01-25 11:15:06.717442 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
2007-01-25 11:15:07.238429 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
2007-01-25 11:15:07.239434 > HCI Event: Command Status (0x0f) plen 4
Unknown (0x00|0x0000) status 0x00 ncmd 1
2007-01-25 11:15:10.151342 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'

the second event with the second name is tracked but never reported back to
the caller cause the unknown event received.
so i see the name 'Seleso' as result on both the shells

this is the behaviour if I use the 2 command sequentially they works fine.

hcitool name 00:0A:28:DF:2B:D8

2007-01-25 11:19:51.930394 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
2007-01-25 11:19:51.951520 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:19:52.199514 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'

hcitool name 00:17:4B:D3:9F:5B

2007-01-25 11:20:39.520967 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
2007-01-25 11:20:39.542195 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:20:43.358090 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'




Since I need to use search names and search services (FAX especially) on a
multi-threaded application i'd like to know if is this possible or somewhere
there is a issue that prevent this.


Attachments:
(No filename) (2.68 kB)
(No filename) (3.15 kB)
(No filename) (347.00 B)
(No filename) (164.00 B)
Download all attachments

2007-01-30 14:39:45

by Emanuele Novelli

[permalink] [raw]
Subject: Re: [Bluez-users] multithread / multi process use

Well I maybe I could try this, just 2 questions:

1 .can the daemon hci manage simultenous requests from variuos
process/threads without problem ?

2 .where I can find some api docs(if any) about the hcid ?

2007/1/28, Albert Huang <[email protected]>:
>
> I think the proper thing to do here is to have your application use
> the D-Bus API, which should do the right thing across multiple
> processes. Maybe someone else who's more in touch with hcid can give
> more details.
>
> -albert
>
> On 1/25/07, Emanuele Novelli <[email protected]> wrote:
> > Hello I'm new here, I searched for this issue but found nothing.
> >
> > Using 2 threads or 2 process for reading a name of a 2 remote devices at
> > same time reports always the same name.
> > Is this a bug or the hci functions in library do not support concurrent
> use
> > ?
> > (using 2.6.19 kernel on FC6 and bluez libs 3.7.1)
> >
> > This is a simply way to reproduce this:
> >
> > open a 2 shells and issue 2 commands at same time
> >
> > hcitool name <bdaddress of a device close to you>
> >
> > they both report the same name
> >
> > here an HCI dump of what's happening
> >
> > 2007-01-25 11:15:06.093319 < HCI Command: Remote Name Request
> (0x01|0x0019)
> > plen 10
> > bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> > 2007-01-25 11:15:06.114456 > HCI Event: Command Status (0x0f) plen 4
> > Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> > 2007-01-25 11:15:06.712794 < HCI Command: Remote Name Request
> (0x01|0x0019)
> > plen 10
> > bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> > 2007-01-25 11:15:06.717442 > HCI Event: Command Status (0x0f) plen 4
> > Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
> > 2007-01-25 11:15:07.238429 > HCI Event: Remote Name Req Complete (0x07)
> plen
> > 255
> > status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
> > 2007-01-25 11:15:07.239434 > HCI Event: Command Status (0x0f) plen 4
> > Unknown (0x00|0x0000) status 0x00 ncmd 1
> > 2007-01-25 11:15:10.151342 > HCI Event: Remote Name Req Complete (0x07)
> plen
> > 255
> > status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
> >
> > the second event with the second name is tracked but never reported back
> to
> > the caller cause the unknown event received.
> > so i see the name 'Seleso' as result on both the shells
> >
> > this is the behaviour if I use the 2 command sequentially they works
> fine.
> >
> > hcitool name 00:0A:28:DF:2B:D8
> >
> > 2007-01-25 11:19:51.930394 < HCI Command: Remote Name Request
> (0x01|0x0019)
> > plen 10
> > bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> > 2007-01-25 11:19:51.951520 > HCI Event: Command Status (0x0f) plen 4
> > Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> > 2007-01-25 11:19:52.199514 > HCI Event: Remote Name Req Complete (0x07)
> plen
> > 255
> > status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
> >
> > hcitool name 00:17:4B:D3:9F:5B
> >
> > 2007-01-25 11:20:39.520967 < HCI Command: Remote Name Request
> (0x01|0x0019)
> > plen 10
> > bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> > 2007-01-25 11:20:39.542195 > HCI Event: Command Status (0x0f) plen 4
> > Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> > 2007-01-25 11:20:43.358090 > HCI Event: Remote Name Req Complete (0x07)
> plen
> > 255
> > status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
> >
> >
> >
> >
> > Since I need to use search names and search services (FAX especially) on
> a
> > multi-threaded application i'd like to know if is this possible or
> somewhere
> > there is a issue that prevent this.
> >
> >
> >
> >
> -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> > opinions on IT & business topics through brief surveys - and earn cash
> >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> >
> > _______________________________________________
> > Bluez-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/bluez-users
> >
> >
> >
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>


Attachments:
(No filename) (4.60 kB)
(No filename) (6.08 kB)
(No filename) (347.00 B)
(No filename) (164.00 B)
Download all attachments

2007-01-28 02:30:34

by Albert Huang

[permalink] [raw]
Subject: Re: [Bluez-users] multithread / multi process use

I think the proper thing to do here is to have your application use
the D-Bus API, which should do the right thing across multiple
processes. Maybe someone else who's more in touch with hcid can give
more details.

-albert

On 1/25/07, Emanuele Novelli <[email protected]> wrote:
> Hello I'm new here, I searched for this issue but found nothing.
>
> Using 2 threads or 2 process for reading a name of a 2 remote devices at
> same time reports always the same name.
> Is this a bug or the hci functions in library do not support concurrent use
> ?
> (using 2.6.19 kernel on FC6 and bluez libs 3.7.1)
>
> This is a simply way to reproduce this:
>
> open a 2 shells and issue 2 commands at same time
>
> hcitool name <bdaddress of a device close to you>
>
> they both report the same name
>
> here an HCI dump of what's happening
>
> 2007-01-25 11:15:06.093319 < HCI Command: Remote Name Request (0x01|0x0019)
> plen 10
> bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> 2007-01-25 11:15:06.114456 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:15:06.712794 < HCI Command: Remote Name Request (0x01|0x0019)
> plen 10
> bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> 2007-01-25 11:15:06.717442 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
> 2007-01-25 11:15:07.238429 > HCI Event: Remote Name Req Complete (0x07) plen
> 255
> status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
> 2007-01-25 11:15:07.239434 > HCI Event: Command Status (0x0f) plen 4
> Unknown (0x00|0x0000) status 0x00 ncmd 1
> 2007-01-25 11:15:10.151342 > HCI Event: Remote Name Req Complete (0x07) plen
> 255
> status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
>
> the second event with the second name is tracked but never reported back to
> the caller cause the unknown event received.
> so i see the name 'Seleso' as result on both the shells
>
> this is the behaviour if I use the 2 command sequentially they works fine.
>
> hcitool name 00:0A:28:DF:2B:D8
>
> 2007-01-25 11:19:51.930394 < HCI Command: Remote Name Request (0x01|0x0019)
> plen 10
> bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> 2007-01-25 11:19:51.951520 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:19:52.199514 > HCI Event: Remote Name Req Complete (0x07) plen
> 255
> status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
>
> hcitool name 00:17:4B:D3:9F:5B
>
> 2007-01-25 11:20:39.520967 < HCI Command: Remote Name Request (0x01|0x0019)
> plen 10
> bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> 2007-01-25 11:20:39.542195 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:20:43.358090 > HCI Event: Remote Name Req Complete (0x07) plen
> 255
> status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
>
>
>
>
> Since I need to use search names and search services (FAX especially) on a
> multi-threaded application i'd like to know if is this possible or somewhere
> there is a issue that prevent this.
>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>
>
>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2007-01-25 10:42:06

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] multithread / multi process use

Hi Emanuele,

> Using 2 threads or 2 process for reading a name of a 2 remote devices
> at same time reports always the same name.
> Is this a bug or the hci functions in library do not support
> concurrent use ?
> (using 2.6.19 kernel on FC6 and bluez libs 3.7.1)
>
> This is a simply way to reproduce this:
>
> open a 2 shells and issue 2 commands at same time
>
> hcitool name <bdaddress of a device close to you>
>
> they both report the same name
>
> here an HCI dump of what's happening
>
> 2007-01-25 11:15:06.093319 < HCI Command: Remote Name Request (0x01|
> 0x0019) plen 10
> bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> 2007-01-25 11:15:06.114456 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:15:06.712794 < HCI Command: Remote Name Request (0x01|
> 0x0019) plen 10
> bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> 2007-01-25 11:15:06.717442 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
> 2007-01-25 11:15:07.238429 > HCI Event: Remote Name Req Complete
> (0x07) plen 255
> status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
> 2007-01-25 11:15:07.239434 > HCI Event: Command Status (0x0f) plen 4
> Unknown (0x00|0x0000) status 0x00 ncmd 1
> 2007-01-25 11:15:10.151342 > HCI Event: Remote Name Req Complete
> (0x07) plen 255
> status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
>
> the second event with the second name is tracked but never reported
> back to the caller cause the unknown event received.
> so i see the name 'Seleso' as result on both the shells
>
> this is the behaviour if I use the 2 command sequentially they works
> fine.
>
> hcitool name 00:0A:28:DF:2B:D8
>
> 2007-01-25 11:19:51.930394 < HCI Command: Remote Name Request (0x01|
> 0x0019) plen 10
> bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
> 2007-01-25 11:19:51.951520 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:19:52.199514 > HCI Event: Remote Name Req Complete
> (0x07) plen 255
> status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
>
> hcitool name 00:17:4B:D3:9F:5B
>
> 2007-01-25 11:20:39.520967 < HCI Command: Remote Name Request (0x01|
> 0x0019) plen 10
> bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
> 2007-01-25 11:20:39.542195 > HCI Event: Command Status (0x0f) plen 4
> Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2007-01-25 11:20:43.358090 > HCI Event: Remote Name Req Complete
> (0x07) plen 255
> status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
>
>
>
>
> Since I need to use search names and search services (FAX especially)
> on a multi-threaded application i'd like to know if is this possible
> or somewhere there is a issue that prevent this.

actually this is a known bug and basically not really fixable except
doing a massive rework of the HCI API. You are better off to use the
D-Bus interface to get the remote names. It will automatically take of
this for you and also do caching of the names.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users