bthidd core dumped

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Wed May 18 13:57:19 PDT 2005


Eric,

>>>>>> This morning, I booted up and began using my laptop with my
>>>>>> bluetooth mouse.  I've been using this mouse for several days now
>>>>>> without a single problem.  Yesterday I added a new bluetooth
>>>>>> mouse (MS Intellimouse), and had both running simultaneously just
>>>>>> fine all day yesterday and last night. This morning, after my
>>>>>> machine was up for about 30-40 minutes, my mouse stopped working.
>>>>>> I hit the buttons, switched the on/off switch, etc.  I was only
>>>>>> using one mouse at the time (however, my second mouse was
>>>>>> probably within range and I believe it was on in my backpack).
>>>>>> After messing with the switch a few times, bthidd core dumped.  I
>>>>>> restarted it, and hit the switch on my mouse a few more times,
>>>>>> and then I got mouse services back.
>>>>>
>>>>> [...]
>>>>>
>>>>>> May 18 06:44:38 neutrino kernel: pid 482 (bthidd), uid 0: exited
>>>>>> on signal 6 (core dumped)
>>>>>
>>>>> signal 6 is SIGABRT (abort(3)). i bet one of the assert()'s fired.
>>>>> do you still have bthidd(8) core file? it should be in /. can you
>>>>> try to get a stack trace or at least assert()'s message? can you
>>>>> try to reproduce the problem with bthidd(8) running in foreground?
>>>>
>>>> Yes, I still have the core file, but I'm not sure what to do with it
>>>> :)
>>>
>>> gdb /path/to/executable/bthidd /path/to/code/bthidd.core
>>>
>>> and send me the output of gdb. then at (gdb) prompt type
>>>
>>> (gdb) where
>>>
>>> and send me the output
>>
>> # gdb /usr/sbin/bthidd /bthidd.core
> 
> [...]
> 
>> Is that what you needed?
> 
> yes, thanks. just like i suspected one of the assert()s fired. i'm going 
> to look at this. just one question: can you put the core file somewhere 
> i can download it? if you can it would help me to troubleshoot the 
> problem faster. if you cant - no big deal.

ok, i found the problem. i have attached the patch that should fix it. 
please do

1) save attached patch somewhere

2) cd /usr/src/usr.sbin/bluetooth/bthidd

3) patch < /path/to/saved/bthidd.patch.txt

4) make cleandir && make depend && make && make install

this patch is against bthidd(8) sources committed to -current.

thanks,
max






> 
> max
> _______________________________________________
> freebsd-bluetooth at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth
> To unsubscribe, send any mail to 
> "freebsd-bluetooth-unsubscribe at freebsd.org"

-------------- next part --------------
Index: parser.y
===================================================================
RCS file: /home/ncvs/src/usr.sbin/bluetooth/bthidd/parser.y,v
retrieving revision 1.3
diff -u -r1.3 parser.y
--- parser.y	12 Jan 2005 20:06:16 -0000	1.3
+++ parser.y	18 May 2005 20:51:36 -0000
@@ -315,12 +315,12 @@
  
 	for (i = 0; i < desc->size; i ++) {
 			if ((i % 8) == 0)
-				fprintf(stdout, "\n		");
+				fprintf(f, "\n		");
  
 			fprintf(f, "0x%2.2x ", desc->data[i]);
 	}
                 
-	fprintf(stdout,
+	fprintf(f,
 "\n"		\
 "	};\n"	\
 "}\n");
Index: server.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/bluetooth/bthidd/server.c,v
retrieving revision 1.2
diff -u -r1.2 server.c
--- server.c	18 Nov 2004 18:05:15 -0000	1.2
+++ server.c	18 May 2005 20:51:36 -0000
@@ -332,7 +332,8 @@
 	char		data[1024];
 	int		len;
 
-	assert(s != NULL);
+	if (s == NULL)
+		return (0); /* can happen on device disconnect */
 
 	do {
 		len = read(fd, data, sizeof(data));


More information about the freebsd-bluetooth mailing list