NUnit を使用して一連のテストを実行しています。各テストは PostgreSQL データベースに接続し、そこで何かを行います。
時々、このスタック トレースで NullReferenceException が発生します。
at Devart.Data.PostgreSql.o.a(Byte[] A_0, Int32 A_1, Int32 A_2, Int32 A_3)
at Devart.Data.PostgreSql.o.b(Byte[] A_0, Int32 A_1, Int32 A_2)
at Devart.Data.PostgreSql.o.a(Char A_0)
at Devart.Data.PostgreSql.r.b(Char A_0)
at Devart.Data.PostgreSql.r.d(af A_0)
at Devart.Data.PostgreSql.i.a(af A_0, Boolean A_1, Boolean A_2, Boolean A_3)
at Devart.Data.PostgreSql.i.a(af A_0, Boolean A_1, Boolean A_2)
at Devart.Data.PostgreSql.i.a(af A_0, Boolean A_1)
at Devart.Data.PostgreSql.af.n()
at Devart.Data.PostgreSql.ag.a(af A_0, Boolean A_1)
at Devart.Data.PostgreSql.ag.a(af A_0)
at Devart.Data.PostgreSql.ag.o()
at Devart.Data.PostgreSql.ag.a()
at Devart.Common.DbConnectionInternal.ao()
at Devart.Common.DbConnectionFactory.a(DbConnectionBase A_0)
at Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)
at Devart.Common.DbConnectionBase.Open()
at Devart.Data.PostgreSql.PgSqlConnection.Open()
at SAserviceTest.ScriptInvocations.ScriptInvoker.ExecuteSqlScript(String sqlFileName, Object[] parameters) in
PostgreSQL ログで、次のようなエントリを見つけました。
2012-12-13 15:04:41 CET DZIENNIK: Could not receive data from client: Unknown winsock error 10061
2012-12-13 15:04:41 CET DZIENNIK: Unexpected EOF on client connection
これらのランダムエラーの原因はわかりません。同じことが、ローカル PostgreSQL サーバーを備えた私のマシンでも、リモート PostgreSQL サーバーを備えたリモート ビルド サーバーでも発生します。
エラーは本当にランダムで、単一のテストを実行している間は決して発生しません。このエラーが発生するには、一連のテストを次々に実行する必要があります。関連する RAM/ディスク容量/ハードウェアの問題はありません。