#1  
Old 17th December 2016, 05:27 AM
Simon Craythorn
 
Posts: n/a
Default Ugh - I spoke too soon - another 64 bit bug

I've got another bug. Again it only appears in the 64 bit version, and
worse, it seems to only appear when the application starts to get larger.

When attempting to read a table with Blob Wide Memo fields I get this
exception....

Error: NexusDB: <unnamed TnxLowQuery instance>: Unexpected exception
object raised: [EAccessViolation] Access violation at address
00000000005F1200 in module 'AdoServerConnectorV4_64.dll'. Read of
address 00000000EBEA0018 [$3CA1/15521]\0\0\0\0\0\0\0\0\0\0\...

I've created a demo application for you, although you may not be able to
build it as I had to stuff the application with DevExpress components to
bring the memory size up to cause the problem. The problem doesn't
occur without stuffing.

http://www.intervations.com/download...exusDBBug2.zip

Creating an empty project with the same table works fine, it's only when
the demo project becomes a useful application that the problem occurs.

Change the Blob Wide Memo field to a string, and the problem goes away.

Read all the fields in the table except the Blow Wide Memo fields and
the problem goes away. Which leads me to think it's that type of field
that's causing the problem.

Again, the same application works just fine in 32 bit.

Also, notice the \0\0\0\0\0 padding on the exception message. This
happens with all exceptions coming out of the provider, making it
difficult to display them in message boxes. I need to trim the nulls
off first.

Thank you.
--
Simon.
  #2  
Old 17th December 2016, 05:44 AM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

As I assume that the issue is somewhere in the native code, I'll not need to
build the managed code to debug the issue. (I can just run the provided .net
binary as host application under the delphi debugger while debugging the
connector dll.)

I'll have a look soon, can't guarantee it's going to be before Monday though.

At a guess, it's going to involve casting a pointer to a 32bit integer
somewhere (Resulting in the pointer being truncated, and the error only
occuring if the passed in pointer value is above 4GB).

Simon Craythorn wrote:

> I've got another bug. Again it only appears in the 64 bit version, and
> worse, it seems to only appear when the application starts to get larger.
>
> When attempting to read a table with Blob Wide Memo fields I get this
> exception....
>
> Error: NexusDB: <unnamed TnxLowQuery instance>: Unexpected exception object
> raised: [EAccessViolation] Access violation at address 00000000005F1200 in
> module 'AdoServerConnectorV4_64.dll'. Read of address 00000000EBEA0018
> [$3CA1/15521]\0\0\0\0\0\0\0\0\0\0\...
>
> I've created a demo application for you, although you may not be able to
> build it as I had to stuff the application with DevExpress components to
> bring the memory size up to cause the problem. The problem doesn't occur
> without stuffing.
>
> http://www.intervations.com/download...exusDBBug2.zip
>
> Creating an empty project with the same table works fine, it's only when the
> demo project becomes a useful application that the problem occurs.
>
> Change the Blob Wide Memo field to a string, and the problem goes away.
>
> Read all the fields in the table except the Blow Wide Memo fields and the
> problem goes away. Which leads me to think it's that type of field that's
> causing the problem.
>
> Again, the same application works just fine in 32 bit.
>
> Also, notice the \0\0\0\0\0 padding on the exception message. This happens
> with all exceptions coming out of the provider, making it difficult to
> display them in message boxes. I need to trim the nulls off first.
>
> Thank you.


  #3  
Old 17th December 2016, 08:46 AM
Simon Craythorn
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

On 12/16/2016 13:44, Thorsten Engler [NDA] wrote:

> As I assume that the issue is somewhere in the native code, I'll not need to
> build the managed code to debug the issue. (I can just run the provided .net
> binary as host application under the delphi debugger while debugging the
> connector dll.)
>
> I'll have a look soon, can't guarantee it's going to be before Monday though.


That's OK, I'm assuming your Monday is my middle of the night on Sunday,
so hopefully you may have something by the time I get in.

I *really* have to get this application to my customer for testing by
Christmas Eve though.

Thank you.
--
Simon.


  #4  
Old 21st December 2016, 12:07 AM
Simon Craythorn
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

On 12/16/2016 13:44, Thorsten Engler [NDA] wrote:

> I'll have a look soon, can't guarantee it's going to be before Monday though.


Any progress on this?

Thank you.
--
Simon.


  #5  
Old 21st December 2016, 01:27 AM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

Simon Craythorn wrote:

> On 12/16/2016 13:44, Thorsten Engler [NDA] wrote:
>
> > I'll have a look soon, can't guarantee it's going to be before Monday
> > though.

>
> Any progress on this?


I've so far been unable to get the programs you provide to run. Trying to start
any of the exe's simply shows now visible reaction and the exception I'll quote
below in the system event log.

I was looking into what it takes to compile the program myself (haven't got the
right DevEx components installed currently), but haven't made progress on that
yet.

It would greatly help if you could provide a testcase that can be executed
"as-is".

Application: NexusDBBug2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
at System.Reflection.RuntimeAssembly._nLoad(System.Re flection.AssemblyName,
System.String, System.Security.Policy.Evidence,
System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef,
IntPtr, Boolean, Boolean, Boolean)
at
System.Reflection.RuntimeAssembly.InternalLoadAsse mblyName(System.Reflection.Ass
emblyName, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly,
System.Threading.StackCrawlMark ByRef, IntPtr, Boolean, Boolean, Boolean)
at System.Reflection.RuntimeAssembly.InternalLoad(Sys tem.String,
System.Security.Policy.Evidence, System.Threading.StackCrawlMark ByRef, IntPtr,
Boolean)
at System.Reflection.RuntimeAssembly.InternalLoad(Sys tem.String,
System.Security.Policy.Evidence, System.Threading.StackCrawlMark ByRef, Boolean)
at System.Reflection.Assembly.Load(System.String)
at DevExpress.Utils.AssemblyHelper.GetAssembly(System .String)
at DevExpress.Xpf.Core.Theme.get_Assembly()
at
DevExpress.Xpf.Core.ThemedElementsDictionary.AddTh emeAssembly(System.String,
System.Collections.Generic.List`1<System.String>)
at
DevExpress.Xpf.Core.ThemedElementsDictionary.Force ThemeKeysLoading(System.String
)
at
DevExpress.Xpf.Core.ThemeManager.ChangeTheme(Syste m.Windows.DependencyObject,
System.String, Boolean, Boolean, System.String)
at
DevExpress.Xpf.Core.ThemeManager.ThemeNameProperty Changed(System.Windows.Depende
ncyObject, System.Windows.DependencyPropertyChangedEventArgs)
at
System.Windows.DependencyObject.OnPropertyChanged( System.Windows.DependencyPrope
rtyChangedEventArgs)
at
System.Windows.FrameworkElement.OnPropertyChanged( System.Windows.DependencyPrope
rtyChangedEventArgs)
at
System.Windows.DependencyObject.NotifyPropertyChan ge(System.Windows.DependencyPr
opertyChangedEventArgs)
at
System.Windows.DependencyObject.UpdateEffectiveVal ue(System.Windows.EntryIndex,
System.Windows.DependencyProperty, System.Windows.PropertyMetadata,
System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef,
Boolean, Boolean, System.Windows.OperationType)
at
System.Windows.DependencyObject.SetValueCommon(Sys tem.Windows.DependencyProperty
, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean,
System.Windows.OperationType, Boolean)
at
System.Windows.DependencyObject.SetValue(System.Wi ndows.DependencyProperty,
System.Object)
at
DevExpress.Xpf.Core.ThemeManager.SetThemeName(Syst em.Windows.DependencyObject,
System.String)
at
DevExpress.Xpf.Utils.Themes.GlobalThemeHelper.SetG lobalTheme(System.Windows.Fram
eworkElement)
at
DevExpress.Xpf.Utils.Themes.GlobalThemeHelper.<Set ApplicationWindows>b__1(System
..Windows.Window)
at
DevExpress.Xpf.Utils.Themes.GlobalThemeHelper.Enum erateSafe(System.Windows.Windo
wCollection, System.Action`1<System.Windows.Window>)
at
DevExpress.Xpf.Utils.Themes.GlobalThemeHelper.SetW indowsApplicationThemeName()
at
System.Windows.Threading.ExceptionWrapper.Internal RealCall(System.Delegate,
System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatch When(System.Object,
System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.Invok eImpl()
at
MS.Internal.CulturePreservingExecutionContext.Call backWrapper(System.Object)
at
System.Threading.ExecutionContext.RunInternal(Syst em.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threa ding.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threa ding.ExecutionContext,
System.Threading.ContextCallback, System.Object)
at
MS.Internal.CulturePreservingExecutionContext.Run( MS.Internal.CulturePreservingE
xecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invok e()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(In tPtr, Int32, IntPtr,
IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation( System.Object)
at
System.Windows.Threading.ExceptionWrapper.Internal RealCall(System.Delegate,
System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatch When(System.Object,
System.Delegate, System.Object, Int32, System.Delegate)
at
System.Windows.Threading.Dispatcher.LegacyInvokeIm pl(System.Windows.Threading.Di
spatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(Syste m.Windows.Interop.MSG
ByRef)
at
System.Windows.Threading.Dispatcher.PushFrameImpl( System.Windows.Threading.Dispa
tcherFrame)
at System.Windows.Threading.DispatcherOperation.Wait( System.TimeSpan)
at
System.Windows.Threading.Dispatcher.InvokeImpl(Sys tem.Windows.Threading.Dispatch
erOperation, System.Threading.CancellationToken, System.TimeSpan)
at
System.Windows.Threading.Dispatcher.LegacyInvokeIm pl(System.Windows.Threading.Di
spatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at
DevExpress.Xpf.Utils.Themes.GlobalThemeHelper.SetW indowsApplicationThemeNameInTh
read()
at
DevExpress.Xpf.Core.ThemeManager.ThemeManager_Appl icationThemeNameChanged(System
..Object, DevExpress.Xpf.Core.ApplicationThemeNameChangedEve ntArgs)
at
DevExpress.Xpf.Core.ApplicationThemeHelper.set_App licationThemeName(System.Strin
g)
at <Module>..cctor()

Exception Info: System.TypeInitializationException
at DevExpress.Xpf.Grid.GridControl..cctor()

Exception Info: System.TypeInitializationException
at
System.Runtime.Serialization.FormatterServices.nat iveGetUninitializedObject(Syst
em.RuntimeType)
at
System.Xaml.Schema.XamlTypeInvoker+DefaultCtorXaml Activator.CallCtorDelegate(Sys
tem.Xaml.Schema.XamlTypeInvoker)
at
System.Xaml.Schema.XamlTypeInvoker+DefaultCtorXaml Activator.CreateInstance(Syste
m.Xaml.Schema.XamlTypeInvoker)
at System.Xaml.Schema.XamlTypeInvoker.CreateInstance( System.Object[])
at
MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateIn stance(System.Xaml.XamlType,
System.Object[])

Exception Info: System.Windows.Markup.XamlParseException
at System.Windows.Markup.XamlReader.RewrapException(S ystem.Exception,
System.Xaml.IXamlLineInfo, System.Uri)
at System.Windows.Markup.WpfXamlLoader.Load(System.Xa ml.XamlReader,
System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object,
System.Xaml.XamlObjectWriterSettings, System.Uri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(Syste m.Xaml.XamlReader,
Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
at System.Windows.Markup.XamlReader.LoadBaml(System.I O.Stream,
System.Windows.Markup.ParserContext, System.Object, Boolean)
at System.Windows.Application.LoadBamlStreamWithSyncI nfo(System.IO.Stream,
System.Windows.Markup.ParserContext)
at System.Windows.Application.DoStartup()
at System.Windows.Application.<.ctor>b__1_0(System.Ob ject)
at
System.Windows.Threading.ExceptionWrapper.Internal RealCall(System.Delegate,
System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatch When(System.Object,
System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.Invok eImpl()
at
MS.Internal.CulturePreservingExecutionContext.Call backWrapper(System.Object)
at
System.Threading.ExecutionContext.RunInternal(Syst em.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threa ding.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threa ding.ExecutionContext,
System.Threading.ContextCallback, System.Object)
at
MS.Internal.CulturePreservingExecutionContext.Run( MS.Internal.CulturePreservingE
xecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invok e()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(In tPtr, Int32, IntPtr,
IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation( System.Object)
at
System.Windows.Threading.ExceptionWrapper.Internal RealCall(System.Delegate,
System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatch When(System.Object,
System.Delegate, System.Object, Int32, System.Delegate)
at
System.Windows.Threading.Dispatcher.LegacyInvokeIm pl(System.Windows.Threading.Di
spatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(Syste m.Windows.Interop.MSG
ByRef)
at
System.Windows.Threading.Dispatcher.PushFrameImpl( System.Windows.Threading.Dispa
tcherFrame)
at System.Windows.Application.RunDispatcher(System.Ob ject)
at System.Windows.Application.RunInternal(System.Wind ows.Window)
at NexusDBBug2.App.Main()
  #6  
Old 21st December 2016, 04:47 AM
Simon Craythorn
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

On 12/20/2016 09:27, Thorsten Engler [NDA] wrote:
> Simon Craythorn wrote:
>
>> On 12/16/2016 13:44, Thorsten Engler [NDA] wrote:
>>
>>> I'll have a look soon, can't guarantee it's going to be before Monday
>>> though.

>>
>> Any progress on this?

>
> I've so far been unable to get the programs you provide to run. Trying to start
> any of the exe's simply shows now visible reaction and the exception I'll quote
> below in the system event log.
>
> I was looking into what it takes to compile the program myself (haven't got the
> right DevEx components installed currently), but haven't made progress on that
> yet.
>
> It would greatly help if you could provide a testcase that can be executed
> "as-is".


Ugh, the theme file was missing from the .zip

I've re-uploaded it to
http://www.intervations.com/download...exusDBBug2.zip and I have
tested this on a clean Win 10 VM, so I know for sure it works.

You shouldn't need the DevEx components specifically. I just used them
because they are big and available. They don't do anything, just take
up memory, adding any large components should produce the same problem.

Please email me if you have any problems tracking this down.
--
Simon.

  #7  
Old 21st December 2016, 03:44 PM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

Simon Craythorn wrote:

> Ugh, the theme file was missing from the .zip
>
> I've re-uploaded it to
> http://www.intervations.com/download...exusDBBug2.zip and I have
> tested this on a clean Win 10 VM, so I know for sure it works.
>
> You shouldn't need the DevEx components specifically. I just used them
> because they are big and available. They don't do anything, just take up
> memory, adding any large components should produce the same problem.
>
> Please email me if you have any problems tracking this down.


Thanks, with this I was able to reproduce and fix the issue:

https://www.nexusdb.com/mantis/view.php?id=2078

I'll check with Eivind about how we can make that fix available for you quickly.
  #8  
Old 22nd December 2016, 12:22 AM
Simon Craythorn
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

On 12/20/2016 23:44, Thorsten Engler [NDA] wrote:

> Thanks, with this I was able to reproduce and fix the issue:
>
> https://www.nexusdb.com/mantis/view.php?id=2078
>
> I'll check with Eivind about how we can make that fix available for you quickly.


Thank you.
--
Simon.

  #9  
Old 22nd December 2016, 01:54 AM
Simon Craythorn
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

On 12/20/2016 23:44, Thorsten Engler [NDA] wrote:

> Thanks, with this I was able to reproduce and fix the issue:
>
> https://www.nexusdb.com/mantis/view.php?id=2078
>
> I'll check with Eivind about how we can make that fix available for you quickly.


Build 306 seems to be working.

Thank you. Have a happy Christmas.
--
Simon.

  #10  
Old 22nd December 2016, 01:56 AM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Ugh - I spoke too soon - another 64 bit bug

Great! Thanks for confirming.

Simon Craythorn wrote:

> On 12/20/2016 23:44, Thorsten Engler [NDA] wrote:
>
> > Thanks, with this I was able to reproduce and fix the issue:
> >
> > https://www.nexusdb.com/mantis/view.php?id=2078
> >
> > I'll check with Eivind about how we can make that fix available for you
> > quickly.

>
> Build 306 seems to be working.
>
> Thank you. Have a happy Christmas.




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Thorsten, I didn't know you spoke Danish ;) Per Larsen nexusdb.public.discussions 4 26th November 2008 06:42 AM


All times are GMT +11. The time now is 04:43 AM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.