[Mono-dev] ConcurrentQueue

2013-12-17 Thread Natti Shwarts
Hi,
I'm running the following .net program on mono (Ubuntu 12, sources
3.8.13.12)
and after ~1 minute where the memory rises up (without any reason according
to the code below), mono crash with TOO MANY HEAP SECTIONS.
(using Queue + lock is stable)
I got mono sources from Git and compile them with large heap.
The result was the same.

I have a few questions:
1. Do you have any idea what could cause this problem ?
2. regarding mono compilation, all makefiles created are with -g flag, how
can I remove it ?

Thanks
Natti



class Program
{
private static readonly ConcurrentQueue Pool = new
ConcurrentQueue();
static void Main(string[] args)
{
//Fill
for (var i = 0; i < 500; i++)
Pool.Enqueue(new object());
var threads = Enumerable.Range(0, Environment.ProcessorCount)
 .Select(_ => new Thread(()
=>
  {
  while (true)
  {
  object
obj;
   if
(Pool.TryDequeue(out obj))

Pool.Enqueue(obj);
   }
})).ToArray();
foreach (var t in threads)
  t.Start();
Thread.Sleep(Timeout.Infinite);
}
 }
}
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue issues (repros)

2012-09-25 Thread Greg Young
>From previous tests.


Mono JIT compiler version 2.11.5 (master/3e19969 Tue Sep 25 17:24:10 EEST 2012)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors.
www.mono-project.com
TLS:   __thread
SIGSEGV:   altstack
Notifications: epoll
Architecture:  amd64
Disabled:  none
Misc:  softdebug
LLVM:  supported, not enabled.
GC:Included Boehm (with typed GC and Parallel Mark)


Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance
of an object
  at System.Collections.Concurrent.ConcurrentQueue`1[System.Object].TryDequeue
(System.Object& result) [0x0] in :0
  at 
ConsoleApplication1.Program+c__AnonStorey1.<>m__0
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException:
Object reference not set to an instance of an object
  at System.Collections.Concurrent.ConcurrentQueue`1[System.Object].TryDequeue
(System.Object& result) [0x0] in :0
  at 
ConsoleApplication1.Program+c__AnonStorey1.<>m__0
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0
greg@ouroboros:~/src/retrospective/research/ccqueuetest/ConsoleApplication1/bin/

On Tue, Sep 25, 2012 at 5:00 PM, Konrad M.  wrote:
> On Tue, 2012-09-25 at 16:57 +0300, Greg Young wrote:
>> reviewing commits
>>
>> object pool is DEAD! and I don't mean 57005 :)
>>
>
> Btw, some tests I did with and without object pool (by reverting
> introducing commit) showed that with SGEN it actually made things
> slower, therefore it is better option also from this point.
>
> --
> Regards,
>  Konrad
>



-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue issues (repros)

2012-09-25 Thread Konrad M.
On Tue, 2012-09-25 at 16:57 +0300, Greg Young wrote:
> reviewing commits
> 
> object pool is DEAD! and I don't mean 57005 :)
> 

Btw, some tests I did with and without object pool (by reverting
introducing commit) showed that with SGEN it actually made things
slower, therefore it is better option also from this point.

--
Regards,
 Konrad

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue issues (repros)

2012-09-25 Thread Greg Young
reviewing commits

object pool is DEAD! and I don't mean 57005 :)

OK will go faster home to check it now.

Greg

On Tue, Sep 25, 2012 at 4:56 PM, Greg Young  wrote:
> I will pull in a few minutes and give it a try.
>
> Cheers,
>
> Greg
>
> On Tue, Sep 25, 2012 at 4:44 PM, Jérémie Laval  
> wrote:
>> Could you try master?
>>
>> --
>> Jérémie Laval
>> http://neteril.org
>>
>>
>>
>> On Thu, Sep 20, 2012 at 2:38 PM, Greg Young  wrote:
>>>
>>> Here are some tests that show some of the failure modes of concurrent
>>> queue (all work in CLR impl)
>>>
>>> On my machine (8 cores within 1 second of running for all failures).
>>> The worst is the last one where anything larger than a reference gives
>>> partial reads.
>>>
>>> in gist if you prefer: https://gist.github.com/3755979
>>>
>>> Unhandled Exception:
>>> System.NullReferenceException: Object reference not set to an instance
>>> of an object
>>>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
>>> (System.Collections.Concurrent.T& result) [0x0] in >> unknown>:0
>>>   at
>>> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
>>> (System.Object x) [0x0] in :0
>>>   at System.Threading.Thread.StartInternal () [0x0] in >> unknown>:0
>>> [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException:
>>> Object reference not set to an instance of an object
>>>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
>>> (System.Collections.Concurrent.T& result) [0x0] in >> unknown>:0
>>>   at
>>> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
>>> (System.Object x) [0x0] in :0
>>>   at System.Threading.Thread.StartInternal () [0x0] in >> unknown>:0
>>>
>>>
>>>
>>> private static void TestMonoConcurrentQueueReference()
>>> {
>>> var queue = new ConcurrentQueue();
>>> var waits = new List();
>>> for (int i = 0; i < 5; i++)
>>> {
>>> int q = i;
>>> waits.Add(new AutoResetEvent(false));
>>> var t = new Thread(x =>
>>> {
>>> for (int j = 0; j < 1; j++)
>>> {
>>> if (j % 100 == 0) Console.Write(".");
>>> queue.Enqueue(new object());
>>> object item;
>>> if (queue.TryDequeue(out item))
>>> {
>>>
>>> }
>>> }
>>> waits[q].Set();
>>> });
>>> t.Start();
>>> }
>>> Console.WriteLine("waiting.");
>>> waits.ForEach(x => x.WaitOne());
>>> Console.WriteLine("done.");
>>>
>>> }
>>>
>>>
>>> I end up in the else {} on try dequeue here don't think I should ever
>>> be allowed to (and dont end up there in MS impl)
>>>
>>> struct TestStruct
>>> {
>>> public long X;
>>> public long Y;
>>>
>>> public TestStruct(long x, long y) : this()
>>> {
>>> X = x;
>>> Y = y;
>>> }
>>> }
>>>
>>> private static void TestMonoConcurrentQueueBiggerThanReference()
>>> {
>>> var queue = new ConcurrentQueue();
>>> var waits = new List();
>>> for(int i=0;i<5;i++)
>>> {
>>> int q = i;
>>> waits.Add(new AutoResetEvent(false));
>>> var t = new Thread(x =>
>>>{
>>>for(int j=0;j<1;j++)
>>>{
>>>if(j% 100 == 0)
>>> Console.Write(".");
>>>queue.Enqueue(new
>>> TestStruct(0x11223344, 0x99887766));
>>>TestStruct item;
>>>if(queue.TryDequeue(out
>>> item))
>>>{
>>>if(item.X !=
>>> 0x11223344) throw new Exception("bad x");
>>>if(item.Y !=
>>> 0x99887766) throw new Exception("bad y");
>>>} else
>>>{
>>>throw new
>>> Exception("unable to read."); < should never hit this.
>>>}
>>>}
>>>waits[q].Set();
>>>});
>>> t.Start();
>>> }
>>> Console.WriteLine("waiting.");
>>> waits.ForEach(x => x.WaitOne());
>>> Console.WriteLine("done.");
>>>
>>>   

Re: [Mono-dev] ConcurrentQueue issues (repros)

2012-09-25 Thread Greg Young
I will pull in a few minutes and give it a try.

Cheers,

Greg

On Tue, Sep 25, 2012 at 4:44 PM, Jérémie Laval  wrote:
> Could you try master?
>
> --
> Jérémie Laval
> http://neteril.org
>
>
>
> On Thu, Sep 20, 2012 at 2:38 PM, Greg Young  wrote:
>>
>> Here are some tests that show some of the failure modes of concurrent
>> queue (all work in CLR impl)
>>
>> On my machine (8 cores within 1 second of running for all failures).
>> The worst is the last one where anything larger than a reference gives
>> partial reads.
>>
>> in gist if you prefer: https://gist.github.com/3755979
>>
>> Unhandled Exception:
>> System.NullReferenceException: Object reference not set to an instance
>> of an object
>>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
>> (System.Collections.Concurrent.T& result) [0x0] in > unknown>:0
>>   at
>> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
>> (System.Object x) [0x0] in :0
>>   at System.Threading.Thread.StartInternal () [0x0] in > unknown>:0
>> [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException:
>> Object reference not set to an instance of an object
>>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
>> (System.Collections.Concurrent.T& result) [0x0] in > unknown>:0
>>   at
>> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
>> (System.Object x) [0x0] in :0
>>   at System.Threading.Thread.StartInternal () [0x0] in > unknown>:0
>>
>>
>>
>> private static void TestMonoConcurrentQueueReference()
>> {
>> var queue = new ConcurrentQueue();
>> var waits = new List();
>> for (int i = 0; i < 5; i++)
>> {
>> int q = i;
>> waits.Add(new AutoResetEvent(false));
>> var t = new Thread(x =>
>> {
>> for (int j = 0; j < 1; j++)
>> {
>> if (j % 100 == 0) Console.Write(".");
>> queue.Enqueue(new object());
>> object item;
>> if (queue.TryDequeue(out item))
>> {
>>
>> }
>> }
>> waits[q].Set();
>> });
>> t.Start();
>> }
>> Console.WriteLine("waiting.");
>> waits.ForEach(x => x.WaitOne());
>> Console.WriteLine("done.");
>>
>> }
>>
>>
>> I end up in the else {} on try dequeue here don't think I should ever
>> be allowed to (and dont end up there in MS impl)
>>
>> struct TestStruct
>> {
>> public long X;
>> public long Y;
>>
>> public TestStruct(long x, long y) : this()
>> {
>> X = x;
>> Y = y;
>> }
>> }
>>
>> private static void TestMonoConcurrentQueueBiggerThanReference()
>> {
>> var queue = new ConcurrentQueue();
>> var waits = new List();
>> for(int i=0;i<5;i++)
>> {
>> int q = i;
>> waits.Add(new AutoResetEvent(false));
>> var t = new Thread(x =>
>>{
>>for(int j=0;j<1;j++)
>>{
>>if(j% 100 == 0)
>> Console.Write(".");
>>queue.Enqueue(new
>> TestStruct(0x11223344, 0x99887766));
>>TestStruct item;
>>if(queue.TryDequeue(out
>> item))
>>{
>>if(item.X !=
>> 0x11223344) throw new Exception("bad x");
>>if(item.Y !=
>> 0x99887766) throw new Exception("bad y");
>>} else
>>{
>>throw new
>> Exception("unable to read."); < should never hit this.
>>}
>>}
>>waits[q].Set();
>>});
>> t.Start();
>> }
>> Console.WriteLine("waiting.");
>> waits.ForEach(x => x.WaitOne());
>> Console.WriteLine("done.");
>>
>> }
>>
>>
>> For good measure lets take out the exception in the last about not
>> being able to read when it should be able to (eg comment out the
>> throw)
>>
>> Unhandled Exception:
>> System.Exception: bad y
>>   at
>> ConsoleApplication1.Program+c__AnonStorey3.<>m__2
>> (System.Object x) [0x0] in :

Re: [Mono-dev] ConcurrentQueue issues (repros)

2012-09-25 Thread Jérémie Laval
Could you try master?

--
Jérémie Laval
http://neteril.org



On Thu, Sep 20, 2012 at 2:38 PM, Greg Young  wrote:

> Here are some tests that show some of the failure modes of concurrent
> queue (all work in CLR impl)
>
> On my machine (8 cores within 1 second of running for all failures).
> The worst is the last one where anything larger than a reference gives
> partial reads.
>
> in gist if you prefer: https://gist.github.com/3755979
>
> Unhandled Exception:
> System.NullReferenceException: Object reference not set to an instance
> of an object
>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
> (System.Collections.Concurrent.T& result) [0x0] in  unknown>:0
>   at
> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
> (System.Object x) [0x0] in :0
>   at System.Threading.Thread.StartInternal () [0x0] in  unknown>:0
> [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException:
> Object reference not set to an instance of an object
>   at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
> (System.Collections.Concurrent.T& result) [0x0] in  unknown>:0
>   at
> ConsoleApplication1.Program+c__AnonStorey1.<>m__0
> (System.Object x) [0x0] in :0
>   at System.Threading.Thread.StartInternal () [0x0] in  unknown>:0
>
>
>
> private static void TestMonoConcurrentQueueReference()
> {
> var queue = new ConcurrentQueue();
> var waits = new List();
> for (int i = 0; i < 5; i++)
> {
> int q = i;
> waits.Add(new AutoResetEvent(false));
> var t = new Thread(x =>
> {
> for (int j = 0; j < 1; j++)
> {
> if (j % 100 == 0) Console.Write(".");
> queue.Enqueue(new object());
> object item;
> if (queue.TryDequeue(out item))
> {
>
> }
> }
> waits[q].Set();
> });
> t.Start();
> }
> Console.WriteLine("waiting.");
> waits.ForEach(x => x.WaitOne());
> Console.WriteLine("done.");
>
> }
>
>
> I end up in the else {} on try dequeue here don't think I should ever
> be allowed to (and dont end up there in MS impl)
>
> struct TestStruct
> {
> public long X;
> public long Y;
>
> public TestStruct(long x, long y) : this()
> {
> X = x;
> Y = y;
> }
> }
>
> private static void TestMonoConcurrentQueueBiggerThanReference()
> {
> var queue = new ConcurrentQueue();
> var waits = new List();
> for(int i=0;i<5;i++)
> {
> int q = i;
> waits.Add(new AutoResetEvent(false));
> var t = new Thread(x =>
>{
>for(int j=0;j<1;j++)
>{
>if(j% 100 == 0)
> Console.Write(".");
>queue.Enqueue(new
> TestStruct(0x11223344, 0x99887766));
>TestStruct item;
>if(queue.TryDequeue(out
> item))
>{
>if(item.X !=
> 0x11223344) throw new Exception("bad x");
>if(item.Y !=
> 0x99887766) throw new Exception("bad y");
>} else
>{
>throw new
> Exception("unable to read."); < should never hit this.
>}
>}
>waits[q].Set();
>});
> t.Start();
> }
> Console.WriteLine("waiting.");
> waits.ForEach(x => x.WaitOne());
> Console.WriteLine("done.");
>
> }
>
>
> For good measure lets take out the exception in the last about not
> being able to read when it should be able to (eg comment out the
> throw)
>
> Unhandled Exception:
> System.Exception: bad y
>   at
> ConsoleApplication1.Program+c__AnonStorey3.<>m__2
> (System.Object x) [0x0] in :0
>   at System.Threading.Thread.StartInternal () [0x0] in  unknown>:0
>
> Unhandled Exception:
> System.NullReferenceException: Object reference not set to an instance
> of an object
>   at
> System.Collections.Concurrent.ConcurrentQueue`1[ConsoleApplication1

[Mono-dev] ConcurrentQueue issues (repros)

2012-09-20 Thread Greg Young
Here are some tests that show some of the failure modes of concurrent
queue (all work in CLR impl)

On my machine (8 cores within 1 second of running for all failures).
The worst is the last one where anything larger than a reference gives
partial reads.

in gist if you prefer: https://gist.github.com/3755979

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance
of an object
  at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
(System.Collections.Concurrent.T& result) [0x0] in :0
  at 
ConsoleApplication1.Program+c__AnonStorey1.<>m__0
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException:
Object reference not set to an instance of an object
  at System.Collections.Concurrent.ConcurrentQueue`1[T].TryDequeue
(System.Collections.Concurrent.T& result) [0x0] in :0
  at 
ConsoleApplication1.Program+c__AnonStorey1.<>m__0
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0



private static void TestMonoConcurrentQueueReference()
{
var queue = new ConcurrentQueue();
var waits = new List();
for (int i = 0; i < 5; i++)
{
int q = i;
waits.Add(new AutoResetEvent(false));
var t = new Thread(x =>
{
for (int j = 0; j < 1; j++)
{
if (j % 100 == 0) Console.Write(".");
queue.Enqueue(new object());
object item;
if (queue.TryDequeue(out item))
{

}
}
waits[q].Set();
});
t.Start();
}
Console.WriteLine("waiting.");
waits.ForEach(x => x.WaitOne());
Console.WriteLine("done.");

}


I end up in the else {} on try dequeue here don't think I should ever
be allowed to (and dont end up there in MS impl)

struct TestStruct
{
public long X;
public long Y;

public TestStruct(long x, long y) : this()
{
X = x;
Y = y;
}
}

private static void TestMonoConcurrentQueueBiggerThanReference()
{
var queue = new ConcurrentQueue();
var waits = new List();
for(int i=0;i<5;i++)
{
int q = i;
waits.Add(new AutoResetEvent(false));
var t = new Thread(x =>
   {
   for(int j=0;j<1;j++)
   {
   if(j% 100 == 0)
Console.Write(".");
   queue.Enqueue(new
TestStruct(0x11223344, 0x99887766));
   TestStruct item;
   if(queue.TryDequeue(out item))
   {
   if(item.X !=
0x11223344) throw new Exception("bad x");
   if(item.Y !=
0x99887766) throw new Exception("bad y");
   } else
   {
   throw new
Exception("unable to read."); < should never hit this.
   }
   }
   waits[q].Set();
   });
t.Start();
}
Console.WriteLine("waiting.");
waits.ForEach(x => x.WaitOne());
Console.WriteLine("done.");

}


For good measure lets take out the exception in the last about not
being able to read when it should be able to (eg comment out the
throw)

Unhandled Exception:
System.Exception: bad y
  at 
ConsoleApplication1.Program+c__AnonStorey3.<>m__2
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance
of an object
  at 
System.Collections.Concurrent.ConcurrentQueue`1[ConsoleApplication1.Program+TestStruct].TryDequeue
(ConsoleApplication1.TestStruct& result) [0x0] in :0
  at 
ConsoleApplication1.Program+c__AnonStorey3.<>m__2
(System.Object x) [0x0] in :0
  at System.Threading.Thread.StartInternal () [0x0] in :0

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance
of an object
  at 
System.Collections.Concurrent.ConcurrentQueue`1[C

[Mono-dev] ConcurrentQueue

2012-09-10 Thread Greg Young
I have to admit I am a bit surprised how buggy concurrentqueue is.

If you are reading this and building software that needs to run in a
stable fashion just say no to concurrent queue. I have placed a few
issues here before but we have seen it infinite loop internally, throw
null reference exceptions etc

I will try to find time to rework a new implementation in our budget
but if you use existing one now its probably causing bugs in your app.


My guess is it also leads to some internal runtime stability issues.

Greg

-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue

2012-08-14 Thread Jonathan Shore
I've also been having NPE's with ConcurrentQueue in the context of
TryDequeue with multiple threads.   Was there a fix for this & did it make
it into 2.11.3?

On Fri, Aug 10, 2012 at 5:28 AM, Greg Young  wrote:

> I can't as I am about to head out of country (its also spuratic behaviour)
>
> I believe @yuriy probably can though.
>
> Cheers,
>
> Greg
>
> On Fri, Aug 10, 2012 at 5:26 AM, Jérémie Laval 
> wrote:
> > Could you run you program in debug mode and paste the line number where
> the
> > problem happen?
> >
> > --
> > Jérémie Laval
> > http://neteril.org
> >
> >
> >
> > On Fri, Aug 10, 2012 at 10:53 AM, Greg Young 
> > wrote:
> >>
> >> trunk.
> >>
> >> On Fri, Aug 10, 2012 at 2:53 AM, Alan  wrote:
> >> > Hey,
> >> >
> >> > What version of Mono are you testing against?
> >> >
> >> > Alan
> >> >
> >> > On 10 August 2012 09:52, Greg Young  wrote:
> >> >> We regularly can cause problems with ConcurrentQueue such as
> >> >>
> >> >> System.NullReferenceException: Object reference not set to an
> instance
> >> >> of an object
> >> >>   at
> >> >>
> System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
> >> >> (System.IO.FileStream& result) [0x0] in :0
> >> >>   at SStable.PTable.GetFileStream () [0x0] in  unknown>:0
> >> >>   at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
> >> >> :0
> >> >>   at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
> >> >> System.UInt64[]& position) [0x0] in :0
> >> >>   at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
> >> >> version, System.UInt64[]& position) [0x0] in :0
> >> >>   at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
> >> >> System.UInt64[]& position) [0x0] in :0
> >> >>   at IndexKiller.Program.ReadItems (SStable.TableIndex index,
> >> >> System.Threading.AutoResetEvent autoResetEvent) [0x0] in
>  >> >> unknown>:0
> >> >>   at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object
> x)
> >> >> [0x0] in :0
> >> >>
> >> >> We have posted up repros before but basically just pound on it with
> >> >> five threads (each thread add and removes 1 item)
> >> >>
> >> >> It seems object pool is still buggy.
> >> >>
> >> >> --
> >> >> Le doute n'est pas une condition agréable, mais la certitude est
> >> >> absurde.
> >> >> ___
> >> >> Mono-devel-list mailing list
> >> >> Mono-devel-list@lists.ximian.com
> >> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >>
> >>
> >>
> >> --
> >> Le doute n'est pas une condition agréable, mais la certitude est
> absurde.
> >> ___
> >> Mono-devel-list mailing list
> >> Mono-devel-list@lists.ximian.com
> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >
> >
>
>
>
> --
> Le doute n'est pas une condition agréable, mais la certitude est absurde.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>



-- 
Jonathan Shore
http://tr8dr.wordpress.com/
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue

2012-08-10 Thread Greg Young
I can't as I am about to head out of country (its also spuratic behaviour)

I believe @yuriy probably can though.

Cheers,

Greg

On Fri, Aug 10, 2012 at 5:26 AM, Jérémie Laval  wrote:
> Could you run you program in debug mode and paste the line number where the
> problem happen?
>
> --
> Jérémie Laval
> http://neteril.org
>
>
>
> On Fri, Aug 10, 2012 at 10:53 AM, Greg Young 
> wrote:
>>
>> trunk.
>>
>> On Fri, Aug 10, 2012 at 2:53 AM, Alan  wrote:
>> > Hey,
>> >
>> > What version of Mono are you testing against?
>> >
>> > Alan
>> >
>> > On 10 August 2012 09:52, Greg Young  wrote:
>> >> We regularly can cause problems with ConcurrentQueue such as
>> >>
>> >> System.NullReferenceException: Object reference not set to an instance
>> >> of an object
>> >>   at
>> >> System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
>> >> (System.IO.FileStream& result) [0x0] in :0
>> >>   at SStable.PTable.GetFileStream () [0x0] in :0
>> >>   at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
>> >> :0
>> >>   at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
>> >> System.UInt64[]& position) [0x0] in :0
>> >>   at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
>> >> version, System.UInt64[]& position) [0x0] in :0
>> >>   at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
>> >> System.UInt64[]& position) [0x0] in :0
>> >>   at IndexKiller.Program.ReadItems (SStable.TableIndex index,
>> >> System.Threading.AutoResetEvent autoResetEvent) [0x0] in > >> unknown>:0
>> >>   at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object x)
>> >> [0x0] in :0
>> >>
>> >> We have posted up repros before but basically just pound on it with
>> >> five threads (each thread add and removes 1 item)
>> >>
>> >> It seems object pool is still buggy.
>> >>
>> >> --
>> >> Le doute n'est pas une condition agréable, mais la certitude est
>> >> absurde.
>> >> ___
>> >> Mono-devel-list mailing list
>> >> Mono-devel-list@lists.ximian.com
>> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
>>
>> --
>> Le doute n'est pas une condition agréable, mais la certitude est absurde.
>> ___
>> Mono-devel-list mailing list
>> Mono-devel-list@lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>



-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue

2012-08-10 Thread Jérémie Laval
Could you run you program in debug mode and paste the line number where the
problem happen?

--
Jérémie Laval
http://neteril.org



On Fri, Aug 10, 2012 at 10:53 AM, Greg Young wrote:

> trunk.
>
> On Fri, Aug 10, 2012 at 2:53 AM, Alan  wrote:
> > Hey,
> >
> > What version of Mono are you testing against?
> >
> > Alan
> >
> > On 10 August 2012 09:52, Greg Young  wrote:
> >> We regularly can cause problems with ConcurrentQueue such as
> >>
> >> System.NullReferenceException: Object reference not set to an instance
> >> of an object
> >>   at
> System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
> >> (System.IO.FileStream& result) [0x0] in :0
> >>   at SStable.PTable.GetFileStream () [0x0] in :0
> >>   at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
> >> :0
> >>   at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
> >> System.UInt64[]& position) [0x0] in :0
> >>   at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
> >> version, System.UInt64[]& position) [0x0] in :0
> >>   at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
> >> System.UInt64[]& position) [0x0] in :0
> >>   at IndexKiller.Program.ReadItems (SStable.TableIndex index,
> >> System.Threading.AutoResetEvent autoResetEvent) [0x0] in  >> unknown>:0
> >>   at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object x)
> >> [0x0] in :0
> >>
> >> We have posted up repros before but basically just pound on it with
> >> five threads (each thread add and removes 1 item)
> >>
> >> It seems object pool is still buggy.
> >>
> >> --
> >> Le doute n'est pas une condition agréable, mais la certitude est
> absurde.
> >> ___
> >> Mono-devel-list mailing list
> >> Mono-devel-list@lists.ximian.com
> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
> --
> Le doute n'est pas une condition agréable, mais la certitude est absurde.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue

2012-08-10 Thread Greg Young
trunk.

On Fri, Aug 10, 2012 at 2:53 AM, Alan  wrote:
> Hey,
>
> What version of Mono are you testing against?
>
> Alan
>
> On 10 August 2012 09:52, Greg Young  wrote:
>> We regularly can cause problems with ConcurrentQueue such as
>>
>> System.NullReferenceException: Object reference not set to an instance
>> of an object
>>   at 
>> System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
>> (System.IO.FileStream& result) [0x0] in :0
>>   at SStable.PTable.GetFileStream () [0x0] in :0
>>   at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
>> :0
>>   at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
>> System.UInt64[]& position) [0x0] in :0
>>   at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
>> version, System.UInt64[]& position) [0x0] in :0
>>   at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
>> System.UInt64[]& position) [0x0] in :0
>>   at IndexKiller.Program.ReadItems (SStable.TableIndex index,
>> System.Threading.AutoResetEvent autoResetEvent) [0x0] in > unknown>:0
>>   at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object x)
>> [0x0] in :0
>>
>> We have posted up repros before but basically just pound on it with
>> five threads (each thread add and removes 1 item)
>>
>> It seems object pool is still buggy.
>>
>> --
>> Le doute n'est pas une condition agréable, mais la certitude est absurde.
>> ___
>> Mono-devel-list mailing list
>> Mono-devel-list@lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list



-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] ConcurrentQueue

2012-08-10 Thread Alan
Hey,

What version of Mono are you testing against?

Alan

On 10 August 2012 09:52, Greg Young  wrote:
> We regularly can cause problems with ConcurrentQueue such as
>
> System.NullReferenceException: Object reference not set to an instance
> of an object
>   at 
> System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
> (System.IO.FileStream& result) [0x0] in :0
>   at SStable.PTable.GetFileStream () [0x0] in :0
>   at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
> :0
>   at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
> System.UInt64[]& position) [0x0] in :0
>   at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
> version, System.UInt64[]& position) [0x0] in :0
>   at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
> System.UInt64[]& position) [0x0] in :0
>   at IndexKiller.Program.ReadItems (SStable.TableIndex index,
> System.Threading.AutoResetEvent autoResetEvent) [0x0] in  unknown>:0
>   at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object x)
> [0x0] in :0
>
> We have posted up repros before but basically just pound on it with
> five threads (each thread add and removes 1 item)
>
> It seems object pool is still buggy.
>
> --
> Le doute n'est pas une condition agréable, mais la certitude est absurde.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] ConcurrentQueue

2012-08-10 Thread Greg Young
We regularly can cause problems with ConcurrentQueue such as

System.NullReferenceException: Object reference not set to an instance
of an object
  at 
System.Collections.Concurrent.ConcurrentQueue`1[System.IO.FileStream].TryDequeue
(System.IO.FileStream& result) [0x0] in :0
  at SStable.PTable.GetFileStream () [0x0] in :0
  at SStable.PTable+c__Iterator2.MoveNext () [0x0] in
:0
  at SStable.PTable.TryGetValue (UInt32 stream, UInt32 version,
System.UInt64[]& position) [0x0] in :0
  at SStable.TableIndex.TryGetValueInternal (UInt32 stream, UInt32
version, System.UInt64[]& position) [0x0] in :0
  at SStable.TableIndex.TryGetValue (UInt32 stream, UInt32 version,
System.UInt64[]& position) [0x0] in :0
  at IndexKiller.Program.ReadItems (SStable.TableIndex index,
System.Threading.AutoResetEvent autoResetEvent) [0x0] in :0
  at IndexKiller.Program+c__AnonStorey1.<>m__0 (System.Object x)
[0x0] in :0

We have posted up repros before but basically just pound on it with
five threads (each thread add and removes 1 item)

It seems object pool is still buggy.

-- 
Le doute n'est pas une condition agréable, mais la certitude est absurde.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list