Hi Karl,
i totaly agree !
My experience to get DBF problems solved is:
1. Describe *exactly* the problem.
2. If possible, make it reproducable with the available DBxxx() functions.
regards
Karl-Heinz
Logic(_cast... crashes VO & DBCreate question
-
- Posts: 774
- Joined: Wed May 17, 2017 8:50 am
- Location: Germany
Logic(_cast... crashes VO & DBCreate question
Guys,
The problem had to do with index corruption when using the same files from different threads. It was happening randomly and rarely in Dick's (web) app, so we did not have a reproducible test case. But we did create and run a lot of tests with several threads updating the same dbf files and we did find a couple issues which could be related to the problem Dick was experiencing.
We did fix those cases (and there was another one reported last week, with .fpt files and multiple threads, which is also fixed now), but of course we cannot know for sure if that fixed also the problem in Dick's app, until he tries it again with the X# runtime.
The problem had to do with index corruption when using the same files from different threads. It was happening randomly and rarely in Dick's (web) app, so we did not have a reproducible test case. But we did create and run a lot of tests with several threads updating the same dbf files and we did find a couple issues which could be related to the problem Dick was experiencing.
We did fix those cases (and there was another one reported last week, with .fpt files and multiple threads, which is also fixed now), but of course we cannot know for sure if that fixed also the problem in Dick's app, until he tries it again with the X# runtime.
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu
Logic(_cast... crashes VO & DBCreate question
Thx for this. But that is not part of the 2.8 preview?
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Logic(_cast... crashes VO & DBCreate question
Hi Karl,
No, the 2.8 preview only included the newest compiler (in order to keep things simple), no new runtime files.
No, the 2.8 preview only included the newest compiler (in order to keep things simple), no new runtime files.
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu
Logic(_cast... crashes VO & DBCreate question
Hello,
The web program is working fine with Vulcan DLL's and as the corrupt index file directly affected the operation of the client we didn't want to risk it going wrong again until the client has forgotten the problems a bit. We just discussed we will probably reinstall an X# DLL based program again in a few weeks, monitor it twice a day for a week or so and hopefully (for the client and X#) it will work well this time.
I am not using GitHub but if something is wrong we do everything possible to provide info or make it reproducible, usually starting in this forum and sometimes by sending a solution to Chris who has an amazing ability to find the cause of a problem. Also when it's not a bug in X# (see below).
Dick
Dick
The other issue was corruption of memofields, but this was fixed for sure as we kept the using the X# DLL's there and this X# program writes records with incoming mail next to the VO program which shows them or adds outgoing mails.Chris wrote:Guys,
We did fix those cases (and there was another one reported last week, with .fpt files and multiple threads, which is also fixed now), but of course we cannot know for sure if that fixed also the problem in Dick's app, until he tries it again with the X# runtime.
The web program is working fine with Vulcan DLL's and as the corrupt index file directly affected the operation of the client we didn't want to risk it going wrong again until the client has forgotten the problems a bit. We just discussed we will probably reinstall an X# DLL based program again in a few weeks, monitor it twice a day for a week or so and hopefully (for the client and X#) it will work well this time.
I am not using GitHub but if something is wrong we do everything possible to provide info or make it reproducible, usually starting in this forum and sometimes by sending a solution to Chris who has an amazing ability to find the cause of a problem. Also when it's not a bug in X# (see below).
Dick
Dick
Logic(_cast... crashes VO & DBCreate question
To finalize this issue: Chris has found the cause, after I discovered that it worked with 4 X# DLL's but not with 4 Vulcan DLL's.
In short: I had a new Pc where the referenced DLL's were invalid because that location was not on my new Pc. As I got a clear error message:
Error XS9014 The dialect 'Vulcan' requires a reference to the runtime DLLs XSharp.Core.DLL and XSharp.RT.DLL or VulcanRT.DLL and VulcanRTFuncs.DLL.
So I added VulcanRT.DLL and VulcanRTFuncs.DLL.and got 2 more compiler errors indicating clearly that 2 more DLL's were missing:
VulcanVORDDClasses and VulcanVoSystemClasses
I added those, all compiled but DBCreate didn't work. Chris pointed out that VulcanRDD.dll, or VulcanMacroCompiler.dll, VulcanDBFFPT.dll, VulcanDBFCDX.dll were missing in the project directory.
I copied all Vulcan DLL files and included them all to be sure (Chris also explained that some of the DLL's do not need to be included but could be needed depending on whatever the program is doing with a DBF).
That all explains it clearly and it works! I will however probably use the X# DLL's, as my current X# DLL for VO only has one specific DBF function which I can monitor so if it works fine it is better to use the X# DLL's eventually.
Thank you all for the input!
Dick
In short: I had a new Pc where the referenced DLL's were invalid because that location was not on my new Pc. As I got a clear error message:
Error XS9014 The dialect 'Vulcan' requires a reference to the runtime DLLs XSharp.Core.DLL and XSharp.RT.DLL or VulcanRT.DLL and VulcanRTFuncs.DLL.
So I added VulcanRT.DLL and VulcanRTFuncs.DLL.and got 2 more compiler errors indicating clearly that 2 more DLL's were missing:
VulcanVORDDClasses and VulcanVoSystemClasses
I added those, all compiled but DBCreate didn't work. Chris pointed out that VulcanRDD.dll, or VulcanMacroCompiler.dll, VulcanDBFFPT.dll, VulcanDBFCDX.dll were missing in the project directory.
I copied all Vulcan DLL files and included them all to be sure (Chris also explained that some of the DLL's do not need to be included but could be needed depending on whatever the program is doing with a DBF).
That all explains it clearly and it works! I will however probably use the X# DLL's, as my current X# DLL for VO only has one specific DBF function which I can monitor so if it works fine it is better to use the X# DLL's eventually.
Thank you all for the input!
Dick