bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible gc/weak hash table bug


From: michaelawells
Subject: Re: possible gc/weak hash table bug
Date: Thu, 17 Mar 2011 19:09:17 -0500

As requested, I'm posting this to address@hidden

I'm now seeing this assertion failure, using a guile development snapshot 
(guile-2.0.0.104-f5fc7):

> dpm.linux: hashtab.c:136: vacuum_weak_hash_table: Assertion `removed <= len' 
> failed.


> static void
> vacuum_weak_hash_table (SCM table)
> {
>   SCM buckets = SCM_HASHTABLE_VECTOR (table);
>   unsigned long k = SCM_SIMPLE_VECTOR_LENGTH (buckets);
>   size_t len = SCM_HASHTABLE_N_ITEMS (table);
> 
>   while (k--)
>     {
>       size_t removed;
>       SCM alist = SCM_SIMPLE_VECTOR_REF (buckets, k);
>       alist = scm_fixup_weak_alist (alist, &removed);  <<<**** FAILS HERE
>       assert (removed <= len);
>       len -= removed;
>       SCM_SIMPLE_VECTOR_SET (buckets, k, alist);
>     }
> 
>   SCM_SET_HASHTABLE_N_ITEMS (table, len);
> }
> 


Unfortunately, this problem is infrequent and intermittent.  In my case, it 
happened in 10 out of 1000 runs.  

Currently, I don't know of a way to reproduce the problem.



On Mar 17, 2011, at 4:43 AM, Andy Wingo wrote:

> Hi Michael,
> 
> Thanks for the report.  In the future, please copy address@hidden; it
> doesn't hurt.
> 
> On Thu 17 Mar 2011 00:56, michaelawells <address@hidden> writes:
> 
>> hashtab.c:203: weak_bucket_assoc: Assertion `(((scm_t_hashtable *)
>> ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits)
>> (0? (*(SCM*)0=((((table))))): (((table)))))))) [((2))]))): (((SCM
>> *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((table))))):
>> (((table)))))))) [((2))]))))))->n_items) >= args.removed_items'
>> failed.
>> 
>> Did you ever see this assertion fail?  
> 
> No I didn't, and that bothers me a little.
> 
>> I tried using a development snapshot (guile-2.0.0.104-f5fc7).  When I
>> use this snapshot, I do not see this problem.
> 
> There were certainly some bugs fixed.  Let's assume that it's fixed in
> git, and in the upcoming 2.0.1 (should be a week or so).  There are
> still some lingering issues with weak hash tables, but we are working on
> them; and certainly no crashes that we know of.
> 
> Have fun with Guile,
> 
> Andy
> -- 
> http://wingolog.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]