Issues
- Found the unexpected error Probable I/O race condition detected while copying memoryNH-4074Resolved issue: NH-4074
- Provide a correct MaxAliasLength for various dialectsNH-4006Resolved issue: NH-4006Frédéric Delaporte
- Mapping System.Type from a database string - doesn't ignore the assembly version numberNH-3994Resolved issue: NH-3994
- ToFuture provides ArgumentException at MultiQueryImpl.CreateCombinedQueryParametersNH-3983Resolved issue: NH-3983
- MappedAs() does not workNH-3941Resolved issue: NH-3941Alex Zaytsev
- Revert NH-3904NH-3940Resolved issue: NH-3940Alex Zaytsev
- Linq projection returns object with defaults instead of null when db reference is nullNH-3938
- Wrong constant parameter evaluation in Linq providerNH-3937Resolved issue: NH-3937Alex Zaytsev
- PropertRef generates extra Left Outer JoinNH-3936
- Proper Setup of Listeners For DINH-3935
- NHibernate Linq Query To Postgresql FailingNH-3933Resolved issue: NH-3933Alex Zaytsev
- Merge() may fire unnecessary updates if collection and version mapping existsNH-3932Resolved issue: NH-3932Alex Zaytsev
- Invalid order of child inserts when using TPH inheritanceNH-3931Resolved issue: NH-3931
- Support for mapping/quering JSON fieldsNH-3930
- ExpressionParameterVisitor selects wrong CustomType for ConstantExpression (Linq)NH-3929Resolved issue: NH-3929Alex Zaytsev
- Invalid SQL generatedNH-3928
- Support lamdas in linq expressionNH-3926Resolved issue: NH-3926
- Reflection Optimizer tries to cast values to getter type in setterNH-3911Resolved issue: NH-3911
- Regression on join following refactoring of NH-3801NH-3909Resolved issue: NH-3909
- Regression on join following refactoring of NH-3801NH-3908Resolved issue: NH-3908
- Oracle12c dialect issue when criteria has SetMaxResults(0).NH-3852
- Release 4.1NH-3849Resolved issue: NH-3849
- Left Outer Join with Aggregating Group By and Conditional Key FailureNH-3844Resolved issue: NH-3844
- Conditional expressions in LINQ SelectNH-3818Resolved issue: NH-3818Alex Zaytsev
- Conditionals in Select are too permissiveNH-3816Resolved issue: NH-3816Alex Zaytsev
- AddJoinsReWriter disassociates Select expressions and GroupBy key expressionsNH-3801Resolved issue: NH-3801Alex Zaytsev
- Enable update ordering for improved batchingNH-3783Resolved issue: NH-3783Alex Zaytsev
- Add support for identity columns to Oracle 12c dialectNH-3768
28 of 28
Found the unexpected error Probable I/O race condition detected while copying memory
Cannot Reproduce
Description
Environment
Windows Server 2012 R2
Created August 28, 2017 at 6:01 AM
Updated October 22, 2018 at 9:05 AM
Resolved October 22, 2018 at 9:04 AM
Activity
Show:
Frédéric DelaporteOctober 22, 2018 at 9:05 AM
Moved here.
For this issue to happen, and as the error message implies itself, it seems likely to me the session has ended-up shared among many threads, which is not supported. The session is not thread safe and must be used by a single thread. This includes implicit usages due to proxy initialization. (For example, when accessing an association, by default it is loaded on demand.)
Please add on the above linked GitHub issue any additional elements which would help reproducing the trouble if it can be done without a multi-threaded usage of a session.
I'm using NH 4.1.0. I'm unable to reproduce the error: it seems to happen randomly, having
show_sql
set to true I get an exception that deadlock the application:2017-08-25 18:48:29,034 [ERROR] [AdvancedTransport] Mfs.Business.Transportation.BaseOrder - FilterMovementsByDestinationFunctionalArea: found the unexpected error Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader. NHibernate.Exceptions.GenericADOException: could not initialize a collection: [Mfs.Domain.TransportManager.TransportUnit.TransportUnitProperties#100100006479][SQL: SELECT transportu0_."FK_TRANSPORT_UNIT" as FK3_1_, transportu0_."PK_ID" as PK1_1_, transportu0_."PK_ID" as PK1_36_0_, transportu0_.Version as Version36_0_, transportu0_."FK_TRANSPORT_UNIT" as FK3_36_0_, transportu0_."PROPERTY_KEY" as PROPERTY4_36_0_, transportu0_."PROPERTY_VALUE" as PROPERTY5_36_0_, transportu0_."PROPERTY_NOTIFIED" as PROPERTY6_36_0_, transportu0_."PROPERTY_REQUIRED" as PROPERTY7_36_0_, transportu0_."PROPERTY_SUCCESS" as PROPERTY8_36_0_ FROM "MFS$TRANSPORT_UNIT_PROPERTY" transportu0_ WHERE transportu0_."FK_TRANSPORT_UNIT"=?] ---> System.IndexOutOfRangeException: Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader. at System.Buffer.InternalBlockCopy(Array src, Int32 srcOffsetBytes, Array dst, Int32 dstOffsetBytes, Int32 byteCount) at System.IO.StreamWriter.Write(Char[] buffer, Int32 index, Int32 count) at System.IO.TextWriter.SyncTextWriter.WriteLine(String value) at NHibernate.AdoNet.Util.SqlStatementLogger.LogCommand(String message, IDbCommand command, FormatStyle style) at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session) at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer) at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer) at NHibernate.Loader.Loader.LoadCollection(ISessionImplementor session, Object id, IType type) --- End of inner exception stack trace --- at NHibernate.Loader.Loader.LoadCollection(ISessionImplementor session, Object id, IType type) at NHibernate.Event.Default.DefaultInitializeCollectionEventListener.OnInitializeCollection(InitializeCollectionEvent event) at NHibernate.Impl.SessionImpl.InitializeCollection(IPersistentCollection collection, Boolean writing) at NHibernate.Collection.AbstractPersistentCollection.ForceInitialization() at NHibernate.Engine.StatefulPersistenceContext.InitializeNonLazyCollections() at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer) at NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister) at NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor session, Object id, Object optionalObject, Object optionalId) at NHibernate.Loader.Entity.AbstractEntityLoader.Load(Object id, Object optionalObject, ISessionImplementor session) at NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options) at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options) at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType) at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType) at NHibernate.Impl.SessionImpl.ImmediateLoad(String entityName, Object id) at NHibernate.Proxy.AbstractLazyInitializer.Initialize() at NHibernate.Proxy.DefaultLazyInitializer.Intercept(InvocationInfo info) at TransportUnitProxy.get_PhysicalId()