[Barrelfish-users] [New release] free() error
Georgios Varisteas
yorgos at kth.se
Tue Apr 2 11:20:31 CEST 2013
Everything is regular. The slot number are incrementing with a step of 2 as they should. Nothing gets printed during the first call to free while slab_alloc fails only when cap.slot is 744. This block is called once for each slot number but slab_alloc never returns NULL except that one last time. That is why I said that maybe 744 is actually not the correct number, that maybe the whole thing should be shifted one slot or the process should have stopped at 742. I'm saying all these cause I do not understand what is happening. Maybe they are obvious, I can't know.
cheers,
Georgios
pond20.20: slab_alloc on sfree() failed:
pond20.20: trying to free slot=744
pond20.20: x->slot=288 x->space=1
pond20.20: x->slot=290 x->space=1
pond20.20: x->slot=292 x->space=1
pond20.20: x->slot=294 x->space=1
pond20.20: x->slot=296 x->space=1
pond20.20: x->slot=298 x->space=1
pond20.20: x->slot=300 x->space=1
pond20.20: x->slot=302 x->space=1
pond20.20: x->slot=304 x->space=1
pond20.20: x->slot=306 x->space=1
pond20.20: x->slot=308 x->space=1
pond20.20: x->slot=310 x->space=1
pond20.20: x->slot=312 x->space=1
pond20.20: x->slot=314 x->space=1
pond20.20: x->slot=316 x->space=1
pond20.20: x->slot=318 x->space=1
pond20.20: x->slot=320 x->space=1
pond20.20: x->slot=322 x->space=1
pond20.20: x->slot=324 x->space=1
pond20.20: x->slot=326 x->space=1
pond20.20: x->slot=328 x->space=1
pond20.20: x->slot=330 x->space=1
pond20.20: x->slot=332 x->space=1
pond20.20: x->slot=334 x->space=1
pond20.20: x->slot=336 x->space=1
pond20.20: x->slot=338 x->space=1
pond20.20: x->slot=340 x->space=1
pond20.20: x->slot=342 x->space=1
pond20.20: x->slot=344 x->space=1
pond20.20: x->slot=346 x->space=1
pond20.20: x->slot=348 x->space=1
pond20.20: x->slot=350 x->space=1
pond20.20: x->slot=352 x->space=1
pond20.20: x->slot=354 x->space=1
pond20.20: x->slot=356 x->space=1
pond20.20: x->slot=358 x->space=1
pond20.20: x->slot=360 x->space=1
pond20.20: x->slot=362 x->space=1
pond20.20: x->slot=364 x->space=1
pond20.20: x->slot=366 x->space=1
pond20.20: x->slot=368 x->space=1
pond20.20: x->slot=370 x->space=1
pond20.20: x->slot=372 x->space=1
pond20.20: x->slot=374 x->space=1
pond20.20: x->slot=376 x->space=1
pond20.20: x->slot=378 x->space=1
pond20.20: x->slot=380 x->space=1
pond20.20: x->slot=382 x->space=1
pond20.20: x->slot=384 x->space=1
pond20.20: x->slot=386 x->space=1
pond20.20: x->slot=388 x->space=1
pond20.20: x->slot=390 x->space=1
pond20.20: x->slot=392 x->space=1
pond20.20: x->slot=394 x->space=1
pond20.20: x->slot=396 x->space=1
pond20.20: x->slot=398 x->space=1
pond20.20: x->slot=400 x->space=1
pond20.20: x->slot=402 x->space=1
pond20.20: x->slot=404 x->space=1
pond20.20: x->slot=406 x->space=1
pond20.20: x->slot=408 x->space=1
pond20.20: x->slot=410 x->space=1
pond20.20: x->slot=412 x->space=1
pond20.20: x->slot=414 x->space=1
pond20.20: x->slot=416 x->space=1
pond20.20: x->slot=418 x->space=1
pond20.20: x->slot=420 x->space=1
pond20.20: x->slot=422 x->space=1
pond20.20: x->slot=424 x->space=1
pond20.20: x->slot=426 x->space=1
pond20.20: x->slot=428 x->space=1
pond20.20: x->slot=430 x->space=1
pond20.20: x->slot=432 x->space=1
pond20.20: x->slot=434 x->space=1
pond20.20: x->slot=436 x->space=1
pond20.20: x->slot=438 x->space=1
pond20.20: x->slot=440 x->space=1
pond20.20: x->slot=442 x->space=1
pond20.20: x->slot=444 x->space=1
pond20.20: x->slot=446 x->space=1
pond20.20: x->slot=448 x->space=1
pond20.20: x->slot=450 x->space=1
pond20.20: x->slot=452 x->space=1
pond20.20: x->slot=454 x->space=1
pond20.20: x->slot=456 x->space=1
pond20.20: x->slot=458 x->space=1
pond20.20: x->slot=460 x->space=1
pond20.20: x->slot=462 x->space=1
pond20.20: x->slot=464 x->space=1
pond20.20: x->slot=466 x->space=1
pond20.20: x->slot=468 x->space=1
pond20.20: x->slot=470 x->space=1
pond20.20: x->slot=472 x->space=1
pond20.20: x->slot=474 x->space=1
pond20.20: x->slot=476 x->space=1
pond20.20: x->slot=478 x->space=1
pond20.20: x->slot=480 x->space=1
pond20.20: x->slot=482 x->space=1
pond20.20: x->slot=484 x->space=1
pond20.20: x->slot=486 x->space=1
pond20.20: x->slot=488 x->space=1
pond20.20: x->slot=490 x->space=1
pond20.20: x->slot=492 x->space=1
pond20.20: x->slot=494 x->space=1
pond20.20: x->slot=496 x->space=1
pond20.20: x->slot=498 x->space=1
pond20.20: x->slot=500 x->space=1
pond20.20: x->slot=502 x->space=1
pond20.20: x->slot=504 x->space=1
pond20.20: x->slot=506 x->space=1
pond20.20: x->slot=508 x->space=1
pond20.20: x->slot=510 x->space=1
pond20.20: x->slot=512 x->space=1
pond20.20: x->slot=514 x->space=1
pond20.20: x->slot=516 x->space=1
pond20.20: x->slot=518 x->space=1
pond20.20: x->slot=520 x->space=1
pond20.20: x->slot=522 x->space=1
pond20.20: x->slot=524 x->space=1
pond20.20: x->slot=526 x->space=1
pond20.20: x->slot=528 x->space=1
pond20.20: x->slot=530 x->space=1
pond20.20: x->slot=532 x->space=1
pond20.20: x->slot=534 x->space=1
pond20.20: x->slot=536 x->space=1
pond20.20: x->slot=538 x->space=1
pond20.20: x->slot=540 x->space=1
pond20.20: x->slot=542 x->space=1
pond20.20: x->slot=544 x->space=1
pond20.20: x->slot=546 x->space=1
pond20.20: x->slot=548 x->space=1
pond20.20: x->slot=550 x->space=1
pond20.20: x->slot=552 x->space=1
pond20.20: x->slot=554 x->space=1
pond20.20: x->slot=556 x->space=1
pond20.20: x->slot=558 x->space=1
pond20.20: x->slot=560 x->space=1
pond20.20: x->slot=562 x->space=1
pond20.20: x->slot=564 x->space=1
pond20.20: x->slot=566 x->space=1
pond20.20: x->slot=568 x->space=1
pond20.20: x->slot=570 x->space=1
pond20.20: x->slot=572 x->space=1
pond20.20: x->slot=574 x->space=1
pond20.20: x->slot=576 x->space=1
pond20.20: x->slot=578 x->space=1
pond20.20: x->slot=580 x->space=1
pond20.20: x->slot=582 x->space=1
pond20.20: x->slot=584 x->space=1
pond20.20: x->slot=586 x->space=1
pond20.20: x->slot=588 x->space=1
pond20.20: x->slot=590 x->space=1
pond20.20: x->slot=592 x->space=1
pond20.20: x->slot=594 x->space=1
pond20.20: x->slot=596 x->space=1
pond20.20: x->slot=598 x->space=1
pond20.20: x->slot=600 x->space=1
pond20.20: x->slot=602 x->space=1
pond20.20: x->slot=604 x->space=1
pond20.20: x->slot=606 x->space=1
pond20.20: x->slot=608 x->space=1
pond20.20: x->slot=610 x->space=1
pond20.20: x->slot=612 x->space=1
pond20.20: x->slot=614 x->space=1
pond20.20: x->slot=616 x->space=1
pond20.20: x->slot=618 x->space=1
pond20.20: x->slot=620 x->space=1
pond20.20: x->slot=622 x->space=1
pond20.20: x->slot=624 x->space=1
pond20.20: x->slot=626 x->space=1
pond20.20: x->slot=628 x->space=1
pond20.20: x->slot=630 x->space=1
pond20.20: x->slot=632 x->space=1
pond20.20: x->slot=634 x->space=1
pond20.20: x->slot=636 x->space=1
pond20.20: x->slot=638 x->space=1
pond20.20: x->slot=640 x->space=1
pond20.20: x->slot=642 x->space=1
pond20.20: x->slot=644 x->space=1
pond20.20: x->slot=646 x->space=1
pond20.20: x->slot=648 x->space=1
pond20.20: x->slot=650 x->space=1
pond20.20: x->slot=652 x->space=1
pond20.20: x->slot=654 x->space=1
pond20.20: x->slot=656 x->space=1
pond20.20: x->slot=658 x->space=1
pond20.20: x->slot=660 x->space=1
pond20.20: x->slot=662 x->space=1
pond20.20: x->slot=664 x->space=1
pond20.20: x->slot=666 x->space=1
pond20.20: x->slot=668 x->space=1
pond20.20: x->slot=670 x->space=1
pond20.20: x->slot=672 x->space=1
pond20.20: x->slot=674 x->space=1
pond20.20: x->slot=676 x->space=1
pond20.20: x->slot=678 x->space=1
pond20.20: x->slot=680 x->space=1
pond20.20: x->slot=682 x->space=1
pond20.20: x->slot=684 x->space=1
pond20.20: x->slot=686 x->space=1
pond20.20: x->slot=688 x->space=1
pond20.20: x->slot=690 x->space=1
pond20.20: x->slot=692 x->space=1
pond20.20: x->slot=694 x->space=1
pond20.20: x->slot=696 x->space=1
pond20.20: x->slot=698 x->space=1
pond20.20: x->slot=700 x->space=1
pond20.20: x->slot=702 x->space=1
pond20.20: x->slot=704 x->space=1
pond20.20: x->slot=706 x->space=1
pond20.20: x->slot=708 x->space=1
pond20.20: x->slot=710 x->space=1
pond20.20: x->slot=712 x->space=1
pond20.20: x->slot=714 x->space=1
pond20.20: x->slot=716 x->space=1
pond20.20: x->slot=718 x->space=1
pond20.20: x->slot=720 x->space=1
pond20.20: x->slot=722 x->space=1
pond20.20: x->slot=724 x->space=1
pond20.20: x->slot=726 x->space=1
pond20.20: x->slot=728 x->space=1
pond20.20: x->slot=730 x->space=1
pond20.20: x->slot=732 x->space=1
pond20.20: x->slot=734 x->space=1
pond20.20: x->slot=736 x->space=1
pond20.20: x->slot=738 x->space=1
pond20.20: x->slot=740 x->space=1
pond20.20: x->slot=742 x->space=1
________________________________________
From: Kornilios Kourtis [kornilios.kourtis at inf.ethz.ch]
Sent: Tuesday, April 02, 2013 10:14
To: Georgios Varisteas
Cc: barrelfish-users at lists.inf.ethz.ch
Subject: Re: [Barrelfish-users] [New release] free() error
Hi Georgios,
On Mon, Apr 01, 2013 at 04:31:09PM +0000, Georgios Varisteas wrote:
> Here it goes:
>
> pond20.20: ** free 1 **
> pond20.20: ** free 2 **
> pond20.20: slab_alloc on sfree() failed:
> pond20.20: trying to free slot=744
> pond20.20: x->slot=288 x->space=1
> .
> :
> pond20.20: x->slot=742 x->space=1
> pond20.20: <<<<<<<n
Actually, would you mind sending me the full list? I would like to see if
there are any merge possibilities that we are missing, or anything else
that seems out of place.
> Another uneducated guess, should the first slot be 290 and the last one
> 744?
I'm not sure about 290, but I believe 744 should not be there since we
are trying to free it.
cheers,
Kornilios.
>
> -Georgios
>
> ________________________________________
> From: Kornilios Kourtis [kornilios.kourtis at inf.ethz.ch]
> Sent: Monday, April 01, 2013 18:18
> To: Georgios Varisteas
> Cc: barrelfish-users at lists.inf.ethz.ch
> Subject: Re: [Barrelfish-users] [New release] free() error
>
> On Mon, Apr 01, 2013 at 03:49:35PM +0000, Georgios Varisteas wrote:
> > Just tested and it still crashes. Same situation as before.
>
> It was worth a try... :-)
>
> The next thing I would try to do is to print the list when the error happens to
> see if something weird is going on. Can you try something like the following:
>
> @@ -103,6 +114,17 @@ static errval_t sfree(struct slot_allocator *ca, struct capref cap)
> if (walk->next && cap.slot < walk->next->slot) {
> struct cnode_meta *new = walk->next;
> walk->next = slab_alloc(&sca->slab);
> + if (walk->next == NULL) {
> + debug_printf("slab_alloc on sfree() failed:\n");
> + debug_printf("trying to free slot=%" PRIuCSLOT "\n", cap.slot);
> + struct cnode_meta *x = sca->head;
> + while (x) {
> + debug_printf("x->slot=%" PRIuCSLOT " x->space=%" PRIuCSLOT "\n",
> + x->slot, x->space);
> + x = x->next;
> + }
> + debug_printf("<<<<<<<n");
> + }
> walk->next->slot = cap.slot;
> walk->next->space = 1;
> walk->next->next = new;
>
> cheers,
> Kornilios.
>
> >
> > -Georgios
> >
> > ________________________________________
> > From: Kornilios Kourtis [kornilios.kourtis at inf.ethz.ch]
> > Sent: Monday, April 01, 2013 17:33
> > To: Georgios Varisteas
> > Cc: barrelfish-users at lists.inf.ethz.ch
> > Subject: Re: [Barrelfish-users] [New release] free() error
> >
> > Hi Georgios,
> >
> > On Sat, Mar 30, 2013 at 09:25:22PM +0000, Georgios Varisteas wrote:
> > > Hi,
> > >
> > > First of all some more details. I have some benchmarking programs (BOTS) with the following structure:
> > >
> > > v1 = alloc(...);
> > > v2 = alloc(...);
> > >
> > > do stuff...
> > >
> > > free(v1);
> > > free(v2);
> > >
> > > It is that second call to free that crashes. The order of the calls to
> > > free doesn't matter. If I remove any one of the two or both calls, all
> > > programs run. What is weird to me is that (having removed one of these
> > > calls) multiple subsequent calls to free from different parts of the
> > > app and not on consecutive blocks, do not cause a crash.
> > >
> > > So I did some digging and I pinpointed the error at
> > > ./barrelfish/slot_alloc/single_slot_alloc.c:106 due to slab_alloc()
> > > returning NULL. The reason for that is that the head is NULL
> > > (./lib/barrelfish/slab.c:91) and not the refill function which is
> > > constantly NULL (./lib/barrelfish/slot_alloc/single_slot_alloc.c:144).
> >
> > I think I've found the bug. The slab size allocated for nodes in the ->head
> > list in single_slot_alloc is the number of slots divided by 2 to accommodate
> > for the worst case. Each node in the list maintains a range of slots so the
> > worst case scenario is having only odd (or even) slots in the list.
> >
> > However, it seems that a possible merge of nodes was overlooked. Can you
> > please try the following (admittedly not tested beyond booting qemu) patch:
> >
> > diff --git a/lib/barrelfish/slot_alloc/single_slot_alloc.c b/lib/barrelfish/slot_alloc/single_slot_alloc.c
> > index 56e4d70..9a9a61f 100644
> > --- a/lib/barrelfish/slot_alloc/single_slot_alloc.c
> > +++ b/lib/barrelfish/slot_alloc/single_slot_alloc.c
> > @@ -92,6 +92,15 @@ static errval_t sfree(struct slot_allocator *ca, struct capref cap)
> > // Freeing at the edge of walk
> > if (cap.slot == walk->slot + walk->space) {
> > walk->space++;
> > +
> > + // check if we can merge walk to next
> > + struct cnode_meta *next = walk->next;
> > + if (next && next->slot == walk->slot + walk->space) {
> > + walk->space += next->space;
> > + walk->next = next->next;
> > + slab_free(&sca->slab, next);
> > + }
> > +
> > goto finish;
> > }
> > else if (cap.slot < walk->slot + walk->space) {
> >
> >
> > cheers,
> > Kornilios.
> >
> >
> > >
> > > Moreover I traced the slots (listing at the end) and although I know very little on how these mappings work, I see an overlapping between the two variables being freed which I suspect should not be there. Specifically freeing variable 1 ends with slot 292 while freeing variable 2 starts with slot 290. As I said this is a totally uneducated guess.
> > >
> > > At this point I can think plenty of workarounds but without understanding what is actually being done, I can't suggest a solution. Any more pointers?
> > >
> > >
> > > cheers,
> > > Georgios
> > >
> > >
> > > debug_printf(" %p %u %p %p **\n", walk->next, cap.slot, new, sca->slab.refill_func);
> > >
> > > pond20.20: ** freeing variable 1 **
> > > pond20.20: 0x80a8d5d8 805 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d5f0 807 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d608 809 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d620 811 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d638 813 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d650 815 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d668 817 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d680 819 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d698 821 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d6b0 823 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d6c8 825 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d6e0 827 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d6f8 829 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d710 831 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d728 833 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d740 835 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d758 837 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d770 839 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d788 841 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d7a0 843 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d7b8 845 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d7d0 847 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d7e8 849 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d800 851 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d818 853 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d830 855 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d848 857 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d860 859 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d878 861 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d890 863 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d8a8 865 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d8c0 867 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d8d8 869 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d8f0 871 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d908 873 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d920 875 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d938 877 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d950 879 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d968 881 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d980 883 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d998 885 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d9b0 887 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d9c8 889 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d9e0 891 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8d9f8 893 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da10 895 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da28 897 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da40 899 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da58 901 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da70 903 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8da88 905 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8daa0 907 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dab8 909 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dad0 911 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dae8 913 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db00 915 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db18 917 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db30 919 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db48 921 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db60 923 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db78 925 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8db90 927 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dba8 929 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dbc0 931 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dbd8 933 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dbf0 935 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc08 937 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc20 939 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc38 941 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc50 943 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc68 945 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc80 947 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dc98 949 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dcb0 951 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dcc8 953 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dce0 955 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dcf8 957 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd10 959 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd28 961 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd40 963 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd58 965 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd70 967 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dd88 969 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dda0 971 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8ddb8 973 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8ddd0 975 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dde8 977 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de00 979 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de18 981 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de30 983 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de48 985 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de60 987 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de78 989 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8de90 991 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dea8 993 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dec0 995 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8ded8 997 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8def0 999 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df08 1001 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df20 1003 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df38 1005 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df50 1007 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df68 1009 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df80 1011 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8df98 1013 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dfb0 1015 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dfc8 1017 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8dfe0 1019 0x80a8d590 0x0 **
> > > pond20.20: 0x80a8f5d8 5 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f5f0 7 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f608 9 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f620 11 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f638 13 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f650 15 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f668 17 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f680 19 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f698 21 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f6b0 23 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f6c8 25 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f6e0 27 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f6f8 29 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f710 31 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f728 33 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f740 37 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f758 40 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f770 42 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f788 44 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f7a0 46 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f7b8 48 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f7d0 50 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f7e8 52 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f800 54 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f818 56 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f830 58 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f848 60 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f860 62 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f878 64 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f890 66 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f8a8 68 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f8c0 70 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f8d8 72 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f8f0 74 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f908 76 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f920 78 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f938 80 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f950 82 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f968 84 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f980 86 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f998 88 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f9b0 90 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f9c8 92 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f9e0 94 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8f9f8 96 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa10 98 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa28 100 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa40 102 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa58 104 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa70 106 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fa88 108 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8faa0 110 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fab8 112 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fad0 114 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fae8 116 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb00 118 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb18 120 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb30 122 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb48 124 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb60 126 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb78 128 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fb90 130 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fba8 132 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fbc0 134 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fbd8 136 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fbf0 138 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc08 140 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc20 142 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc38 144 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc50 146 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc68 148 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc80 150 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fc98 152 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fcb0 154 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fcc8 156 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fce0 158 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fcf8 160 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd10 162 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd28 164 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd40 166 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd58 168 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd70 170 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fd88 172 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fda0 174 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fdb8 176 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fdd0 178 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fde8 180 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe00 182 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe18 184 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe30 186 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe48 188 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe60 190 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe78 192 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fe90 194 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fea8 196 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fec0 198 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fed8 200 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fef0 202 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff08 204 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff20 206 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff38 208 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff50 210 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff68 212 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff80 214 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ff98 216 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ffb0 218 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ffc8 220 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8ffe0 222 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a8fff8 224 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90010 226 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90028 228 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90040 230 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90058 232 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90070 234 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90088 236 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a900a0 238 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a900b8 240 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a900d0 242 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a900e8 244 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90100 246 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90118 248 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90130 250 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90148 252 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90160 254 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90178 256 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90190 258 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a901a8 260 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a901c0 262 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a901d8 264 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a901f0 266 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90208 268 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90220 270 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90238 272 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90250 274 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90268 276 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90280 278 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90298 280 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a902b0 282 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a902c8 284 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a902e0 286 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a902f8 288 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90310 290 0x80a8f5a8 0x0 **
> > > pond20.20: 0x80a90328 292 0x80a8f5a8 0x0 **
> > >
> > >
> > > pond20.20: ** freeing variable 2 **
> > > pond20.20: 0x80a8e028 290 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e040 292 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e058 294 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e070 296 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e088 298 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e0a0 300 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e0b8 302 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e0d0 304 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e0e8 306 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e100 308 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e118 310 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e130 312 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e148 314 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e160 316 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e178 318 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e190 320 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e1a8 322 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e1c0 324 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e1d8 326 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e1f0 328 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e208 330 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e220 332 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e238 334 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e250 336 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e268 338 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e280 340 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e298 342 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e2b0 344 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e2c8 346 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e2e0 348 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e2f8 350 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e310 352 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e328 354 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e340 356 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e358 358 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e370 360 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e388 362 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e3a0 364 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e3b8 366 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e3d0 368 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e3e8 370 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e400 372 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e418 374 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e430 376 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e448 378 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e460 380 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e478 382 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e490 384 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e4a8 386 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e4c0 388 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e4d8 390 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e4f0 392 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e508 394 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e520 396 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e538 398 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e550 400 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e568 402 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e580 404 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e598 406 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e5b0 408 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e5c8 410 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e5e0 412 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e5f8 414 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e610 416 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e628 418 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e640 420 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e658 422 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e670 424 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e688 426 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e6a0 428 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e6b8 430 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e6d0 432 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e6e8 434 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e700 436 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e718 438 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e730 440 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e748 442 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e760 444 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e778 446 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e790 448 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e7a8 450 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e7c0 452 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e7d8 454 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e7f0 456 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e808 458 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e820 460 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e838 462 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e850 464 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e868 466 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e880 468 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e898 470 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e8b0 472 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e8c8 474 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e8e0 476 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e8f8 478 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e910 480 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e928 482 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e940 484 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e958 486 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e970 488 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e988 490 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e9a0 492 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e9b8 494 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e9d0 496 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8e9e8 498 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea00 500 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea18 502 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea30 504 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea48 506 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea60 508 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea78 510 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ea90 512 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eaa8 514 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eac0 516 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ead8 518 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eaf0 520 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb08 522 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb20 524 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb38 526 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb50 528 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb68 530 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb80 532 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eb98 534 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ebb0 536 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ebc8 538 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ebe0 540 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ebf8 542 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec10 544 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec28 546 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec40 548 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec58 550 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec70 552 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ec88 554 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eca0 556 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ecb8 558 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ecd0 560 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ece8 562 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed00 564 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed18 566 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed30 568 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed48 570 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed60 572 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed78 574 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ed90 576 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eda8 578 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8edc0 580 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8edd8 582 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8edf0 584 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee08 586 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee20 588 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee38 590 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee50 592 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee68 594 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee80 596 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ee98 598 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eeb0 600 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eec8 602 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eee0 604 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8eef8 606 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef10 608 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef28 610 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef40 612 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef58 614 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef70 616 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8ef88 618 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8efa0 620 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8efb8 622 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8efd0 624 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8efe8 626 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f000 628 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f018 630 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f030 632 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f048 634 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f060 636 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f078 638 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f090 640 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f0a8 642 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f0c0 644 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f0d8 646 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f0f0 648 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f108 650 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f120 652 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f138 654 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f150 656 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f168 658 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f180 660 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f198 662 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f1b0 664 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f1c8 666 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f1e0 668 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f1f8 670 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f210 672 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f228 674 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f240 676 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f258 678 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f270 680 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f288 682 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f2a0 684 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f2b8 686 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f2d0 688 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f2e8 690 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f300 692 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f318 694 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f330 696 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f348 698 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f360 700 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f378 702 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f390 704 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f3a8 706 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f3c0 708 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f3d8 710 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f3f0 712 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f408 714 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f420 716 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f438 718 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f450 720 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f468 722 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f480 724 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f498 726 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f4b0 728 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f4c8 730 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f4e0 732 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f4f8 734 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f510 736 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f528 738 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f540 740 0x80a8dff8 0x0 **
> > > pond20.20: 0x80a8f558 742 0x80a8dff8 0x0 **
> > > pond20.20: 0x0 744 0x80a8dff8 0x0 **
> > > kernel 20: user page fault in 'pond20': addr 0 IP 4d49dc SP a80062b1140 error 0x6
> > >
> > >
> > >
> > > ________________________________________
> > > From: Kornilios Kourtis [kornilios.kourtis at inf.ethz.ch]
> > > Sent: Saturday, March 30, 2013 16:33
> > > To: Georgios Varisteas
> > > Cc: barrelfish-users at lists.inf.ethz.ch
> > > Subject: Re: [Barrelfish-users] [New release] free() error
> > >
> > > Hi Georgios,
> > >
> > > On Wed, Mar 27, 2013 at 08:10:22PM +0000, Georgios Varisteas wrote:
> > > > Hi,
> > > >
> > > > Using code that run before updating, I now get a page fault while
> > > > freeing memory. The same code runs correctly on linux and I get no
> > > > messages from valgrind neither. Thus it should be something internal.
> > > > kernel 20: user page fault in 'pond20': addr 0 IP 4d3c8d SP a80062b1120 error 0x6
> > > >
> > > > Although I attached the disassembled portion below, I assume the error
> > > > is at ./lib/barrelfish/slot_alloc/single_slot_alloc.c:117.
> > > >
> > > > Actually this is the last of a series of 3 calls to free() and since
> > > > allocations were also done consecutively the addresses are consecutive.
> > > >
> > > > I can spend time to fix this myself but I'd like some pointers.
> > > >
> > > > cheers,
> > > > Georgios
> > > >
> > > >
> > > > 00000000004d3b10 <sfree>:
> > > [snip]
> > > > 4d3c84: e8 27 64 f9 ff callq 46a0b0 <slab_alloc>
> > > > 4d3c89: 49 89 46 08 mov %rax,0x8(%r14)
> > > >
> > > > ->4d3c8d: 44 89 28 mov %r13d,(%rax)
> > >
> > > Not sure how much this will help, but the problem seems to be that
> > > slab_alloc() returns NULL, which is not checked in sfree(), causing a
> > > segfault when trying to dereference the returned pointer.
> > >
> > > slab_alloc() returns NULL if:
> > > a) no refill function (->refill_func) exists, or
> > > b) calling ->refill_func did not result in new free blocks.
> > >
> > > A first suggestion would be to try and see if we are dealing with a) or
> > > b).
> > >
> > > cheers,
> > > Kornilios.
> > >
> > > --
> > > Kornilios Kourtis
> > >
> > > _______________________________________________
> > > Barrelfish-users mailing list
> > > Barrelfish-users at lists.inf.ethz.ch
> > > https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> >
> > --
> > Kornilios Kourtis
> >
> > _______________________________________________
> > Barrelfish-users mailing list
> > Barrelfish-users at lists.inf.ethz.ch
> > https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
> --
> Kornilios Kourtis
--
Kornilios Kourtis
More information about the Barrelfish-users
mailing list