Archived Forum Post

Index of archived forum posts

Question:

System.AccessViolationException in Chilkat Compression CompressBytes on Win Server 2012

Feb 20 '14 at 03:12

Hi,

I am using 64-bit Chilkat .NET assembly for the 4.5 Framework in Visual studio 2013. Everything is working fine and smooth when we deployed the application in Windows Server 2008 R2 (installed .Net Framework 4.5.1). However, when we moved the app to Windows Server 2012, we started to encounter System.AccessViolationException during compression of data. Please see event viewer logs below:

Application Error


Faulting application name: w3wp.exe, version: 8.0.9200.16384, time stamp: 0x50108835
Faulting module name: ChilkatDotNet45.DLL, version: 9.4.1.0, time stamp: 0x520d2c5f
Exception code: 0xc0000005
Fault offset: 0x00000000004316ee
Faulting process id: 0x71c
Faulting application start time: 0x01cf2c5aefa558db
Faulting application path: c:windowssystem32inetsrvw3wp.exe
Faulting module path: C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Filesrootf35d50979d8b0f28assemblydl3ad5e8e16b0dad04f_5a2ccf01ChilkatDotNet45.DLL


Stack Trace


Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
   at <module>.ClsCompression.CompressBytes(ClsCompression, DataBuffer, DataBuffer, ProgressEvent)
   at <module>.ClsCompression.CompressBytes(ClsCompression, DataBuffer, DataBuffer, ProgressEvent)
   at Chilkat.Compression.CompressBytes(Byte[])
   at ConnectedBusinessNetwork.BusinessRules.Process.CBNProcess.StreamHelper.CompressData2(Byte[])
   at ConnectedBusinessNetwork.BusinessRules.Process.CBNProcess.StreamHelper.CompressEntityToByteArray2[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
   at ConnectedBusinessNetwork.BusinessRules.Process.CBNProcess.Supplier.SupplierInventoryProcess.DownloadInventoryItemImage2(System.String, System.String, System.Collections.Generic.List`1<int32>)
   at DynamicClass.SyncInvokeDownloadInventoryItemImage2(System.Object, System.Object[], System.Object[])
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(System.Object, System.Object[], System.Object[] ByRef)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(System.ServiceModel.Dispatcher.MessageRpc ByRef)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(System.ServiceModel.Dispatcher.MessageRpc ByRef)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(System.ServiceModel.Dispatcher.MessageRpc ByRef)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean)
   at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(System.ServiceModel.Channels.RequestContext, Boolean, System.ServiceModel.OperationContext)
   at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(System.ServiceModel.Channels.RequestContext, System.ServiceModel.OperationContext)
   at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(System.IAsyncResult)
   at System.Runtime.IOThreadScheduler+ScheduledOverlapped.IOCallback(UInt32, UInt32, System.Threading.NativeOverlapped)
   at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

This is the details on lastErrorText log:

No message has been log after the CompressBytes method has been called, because the app crashed right after calling it.


ChilkatLog:
  UnlockComponent:
    DllDate: Aug 15 2013
    ChilkatVersion: 9.4.1.42
    UnlockPrefix: NONE
    Username: WIN-PRGKI1CEGI9:WIN-PRGKI1CEGI9$
    Architecture: Little Endian; 64-bit
    Language: .NET 4.5 / x64
    VerboseLogging: 0
    component: Compress
    unlockCode: --Secret--
    RegKey:
      LibDate: Aug 15 2013
      requiresPerm: 0
      re-parsing expire date...
      Component successfully unlocked using permanent unlock code.
    --RegKey
    Success.
  --UnlockComponent
--ChilkatLog


Help please?! Thanks!!


Answer

Please try this new build:

32-bit: http://www.chilkatsoft.com/preRelease/ChilkatDotNet45-9.5.0-win32.zip

64-bit: http://www.chilkatsoft.com/preRelease/ChilkatDotNet45-9.5.0-x64.zip

Also, if using PPMD on 64-bit, it's best to switch to another compression algorithm because there are known problems with it. The 32-bit version is solid and has never had a problem. The other algorithms available w/ Chilkat.Compression are BZIP2, Deflate, and LZW.

Also, the PPMD algorithm comes in many variants. The one implemented by the Chilkat.Compression is the "J" variant. Chilkat has since implemented the "I" variant, which is the standard PPMD compression used in the ZipX format, which is handled by Chilkat Zip (for unzipping only at this point). Both 32-bit and 64-bit versions of the "I" variant are working without issues. When time allows, the "I" variant will be "plugged in" to the Chilkat.Compression class to make it available.