Logic(_cast... crashes VO & DBCreate question

This forum is meant for questions and discussions about the X# language and tools
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

Logic(_cast... crashes VO & DBCreate question

Post by Karl-Heinz »

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
User avatar
Chris
Posts: 4848
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

Logic(_cast... crashes VO & DBCreate question

Post by Chris »

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.
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
FFF
Posts: 1571
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Logic(_cast... crashes VO & DBCreate question

Post by FFF »

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)
User avatar
Chris
Posts: 4848
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

Logic(_cast... crashes VO & DBCreate question

Post by Chris »

Hi Karl,

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
ic2
Posts: 1856
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Logic(_cast... crashes VO & DBCreate question

Post by ic2 »

Hello,
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 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.

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
ic2
Posts: 1856
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Logic(_cast... crashes VO & DBCreate question

Post by ic2 »

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
Post Reply