Mono 2.8.2 System.buffer.blockcopy ошибка - PullRequest
0 голосов
/ 14 марта 2011

При тестировании сервера ubuntu, работающего под управлением apache2 и mono 2.8.2 в среде с высокой нагрузкой, примерно каждые десять минут выводится следующая ошибка (с последними двумя повторяющимися строками ошибки, повторяемыми примерно сто раз после этого).

Handling exception type ArgumentOutOfRangeException
Message is Non-negative number required.
Parameter name: srcOffset
IsTerminating is set to True
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: srcOffset
  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x000b7] in /home/elliott/mono-2.8.2/mcs/class/corlib/System/Buffer.cs:103
  at System.Net.WebConnectionStream.ReadAll () [0x00183] in /home/elliott/mono-2.8.2/mcs/class/System/System.Net/WebConnectionStream.cs:259
  at System.Net.WebConnectionStream.CheckResponseInBuffer () [0x0002f] in /home/elliott/mono-2.8.2/mcs/class/System/System.Net/WebConnectionStream.cs:120
  at (wrapper remoting-invoke-with-check) System.Net.WebConnectionStream:CheckResponseInBuffer ()
  at System.Net.WebConnection.ReadDone (IAsyncResult result) [0x001a3] in /home/elliott/mono-2.8.2/mcs/class/System/System.Net/WebConnection.cs:476
  at System.Net.Sockets.Socket+SocketAsyncResult.CB (System.Object unused) [0x00000] in /home/elliott/mono-2.8.2/mcs/class/System/System.Net.Sockets/Socket.cs:214
[Tue Mar 08 13:49:58 2011] [error] (70014)End of file found: read_data failed
[Tue Mar 08 13:49:58 2011] [error] Command stream corrupted, last command was 1
[Tue Mar 08 13:49:58 2011] [error] (70014)End of file found: read_data failed
[Tue Mar 08 13:49:58 2011] [error] Command stream corrupted, last command was 1

Это может быть проблема с чем-то в моем коде или это проблема в самом mod_mono? Похоже, он появился после более высокой нагрузки на сервер, и ни в одном из моих файлов исходного кода не было номеров ссылочных строк.

Также следует отметить, что после обновления до mono 2.10.1 в небольших тестах я вместо этого получаю эту ошибку при каждом запросе (но я не смог протестировать какую-либо крупномасштабную загрузку):

[Mon Mar 14 12:59:30 2011] [error] (70014)End of file found: read_data failed
[Mon Mar 14 12:59:30 2011] [error] Command stream corrupted, last command was -1

Ответы [ 2 ]

0 голосов
/ 06 апреля 2013

Возможно, я исправил это некоторое время назад в git pull , который был добавлен в Mono 2012-03-01. К сожалению, это означает, что он не в моно 2.10.8.1 (в котором сейчас находятся многие дистрибутивы, поскольку моно 3 все еще находится в бета-версии).

0 голосов
/ 14 марта 2011

Это похоже на ошибку в System.Net.WebConnectionStream.ReadAll для меня.Почему-то я подозреваю, что readBufferOffset стал отрицательным, хотя неясно, как ... (конечно, это могло быть исправлено после 2.8.2 ...) Код проверки аргумента для Buffer.BlockCopyдовольно просто ...

...