Four Js Development Tools Forum

Discussions by product => Genero BDL => Topic started by: Mark W. on November 08, 2013, 11:05:27 am



Title: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 11:05:27 am
Good day,

I have a program with several modules.  I added a new function to one of the modules and recompiled.  Now I get a runtime error:--
Quote
Date: 08/11/2013    Time: 10:36:40
Program error at 'U_security.4gl', line number 0.
FORMS statement error number -6208.
Module 'U_security': already loaded.

I have tried deleting all the *42* files and then recompiling.  the recompile/link is successful, but I still get the runtime error.  The module in question is linked once only.  Any ideas?

Thanks,
Mark


Title: Re: FORMS statement error number -6208
Post by: Olivier E. on November 08, 2013, 11:10:01 am
Hello Mark,


May I ask you the Version of Genero please ?  (the output of the command : fglrun -V)


Thank you,

Olivier - Four Js Support


Title: Re: FORMS statement error number -6208
Post by: Nuno G. on November 08, 2013, 11:11:20 am
Hi!

I would do as follows:

1) verify it I don't have two different funcions with the same name in 2 distinct 4gl files
2) check if the 4gl file that contains the function is not used on two differente 42x libraries
3) check for duplications on the make file or Stdio dependencies.

But same more details about your program would help!

Best regards
Nuno


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 11:11:50 am
Hello Mark,


May I ask you the Version of Genero please ?  (the output of the command : fglrun -V)


Thank you,

Olivier - Four Js Support
dcdev5:D:5.5.6 Development 2.02.06:/dcs/logs>fglrun -V
fglrun 2.02.06 build-966.82
Built Nov 13 2007 13:59:20
(c) 1989-2007 Four J's Development Tools


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 11:14:52 am
Hi!

I would do as follows:

1) verify it I don't have two different funcions with the same name in 2 distinct 4gl files
2) check if the 4gl file that contains the function is not used on two differente 42x libraries
3) check for duplications on the make file or Stdio dependencies.

But same more details about your program would help!

Best regards
Nuno

Thanks for the response.
1) I've checked that, and there are no duplicate functions.
2) It isn't used in any 42x libraries.
3) No duplications.

Another program that uses the same module produces the same error.

What details do you need?

Regards,
Mark


Title: Re: FORMS statement error number -6208
Post by: Nuno G. on November 08, 2013, 11:43:30 am
The details I would ask you would be the dependencies list or, if it is still the case, your makefile.

Why don't you try to remove the file from your dependencies and the re-link to see if you get an error message of missing functions ?




Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 12:05:03 pm
The details I would ask you would be the dependencies list or, if it is still the case, your makefile.

Why don't you try to remove the file from your dependencies and the re-link to see if you get an error message of missing functions ?



Makefile:--
Quote
#$Log:   /dcs/archives/POM.4gm/XWATIF.4gs/makefile.__v  $
 # ^M
 #    Rev 2.0   10 Jan 2008 14:27:02   dcs^M
 # Trunk revision for migrating to Genero 2.02.^M
 # ^M
 #    Rev 1.0.1.0   22 May 2007 12:49:44   luke^M
 # makefile checked in to the checkdev group. Work Request #^M
 # Genero first phase^M
 # ^M
 #    Rev 1.0   11 May 2007 16:51:44   luke^M
 # Initial revision.^M

# makefile for XWATIF.42r

all : XWATIF.42r \
   XWATIF.42f
   @echo "\007"
   @echo make of XWATIF.42r finished
   @echo ===========================
   @cp *42m $(deploy)/modules
   @cp *42f $(deploy)/forms
   @cp *42r $(deploy)/programs
   @echo "\007"
   @echo XWATIF files copied
   @echo ===========================
   @echo "\007"

XWATIF.42r : XWATIF.42m \
   XWAT_globals.42m \
   XWAT_pr_hdr.42m \
   $(mz)/UTIL.4gm/U_print_func.42m \
   $(mz)/UTIL.4gm/U_tran_track.42m \
   $(mz)/UTIL.4gm/U_std_tools.42m \
   $(mz)/UTIL.4gm/U_security.42m \                                                                                                               XWAT_frm.42m
   fgl2p -o XWATIF.42r  XWATIF.42m \
   XWAT_globals.42m \
   XWAT_pr_hdr.42m \
   $(mz)/UTIL.4gm/U_print_func.42m \
   $(mz)/UTIL.4gm/U_tran_track.42m \
   $(mz)/UTIL.4gm/U_std_tools.42m \
   $(mz)/UTIL.4gm/U_security.42m \
   XWAT_frm.42m

XWATIF.42m: XWATIF.4gl
   fgl2p XWATIF.4gl

XWAT_globals.42m: XWAT_globals.4gl
   fgl2p XWAT_globals.4gl

XWAT_pr_hdr.42m: XWAT_pr_hdr.4gl
   fgl2p XWAT_pr_hdr.4gl

$(mz)/UTIL.4gm/U_print_func.42m: $(mz)/UTIL.4gm/U_print_func.4gl
   cd $(mz)/UTIL.4gm;fgl2p U_print_func.4gl

$(mz)/UTIL.4gm/U_tran_track.42m: $(mz)/UTIL.4gm/U_tran_track.4gl
   cd $(mz)/UTIL.4gm;fgl2p U_tran_track.4gl

$(mz)/UTIL.4gm/U_std_tools.42m: $(mz)/UTIL.4gm/U_std_tools.4gl
   cd $(mz)/UTIL.4gm;fgl2p U_std_tools.4gl

$(mz)/UTIL.4gm/U_security.42m: $(mz)/UTIL.4gm/U_security.4gl
   cd $(mz)/UTIL.4gm;fgl2p U_security.4gl

XWAT_frm.42m: XWAT_frm.4gl
   fgl2p XWAT_frm.4gl

XWATIF.42f: XWATIF.per
   fglform XWATIF.per

The module causing the problem is U_security.4gl

With the module removed from the makefile:--
Quote
dcdev5:D:5.5.6 Development 2.02.06:/home/mark/dcs/POM.4gm/XWATIF.4gs>make
        fgl2p XWATIF.4gl
        fgl2p XWAT_globals.4gl
        fgl2p XWAT_pr_hdr.4gl
        fgl2p XWAT_frm.4gl
        fgl2p -o XWATIF.42r     XWATIF.42m  XWAT_globals.42m  XWAT_pr_hdr.42m  /dcs/UTIL.4gm/U_print_func.42m  /dcs/UTIL.4gm/U_tran_track.42m  /dcs/UTIL.4gm/U_std_tools.42m  XWAT_frm.42m
The function 'program_security_v2' has not been defined in any module in the program.
The function 'check_process_txn' has not been defined in any module in the program.
ERROR(-6211):Link has failed.
make: 1254-004 The error code from the last command is 1.


Title: Re: FORMS statement error number -6208
Post by: Rene S. on November 08, 2013, 12:25:42 pm
Hello Nuno,
your problem happens in a small program - fortunately.
If you trust me: please mail your sources (don't forget a potential .sch file).

The error -6208. is a "can't happen" error: Should never happen with a legal 4gl source. This is an indicator for an internal error in the runtime.

One question: Do you get the same error when starting the debugger (before calling 'run')?
Rene


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 12:36:43 pm
Hello Nuno,
your problem happens in a small program - fortunately.
If you trust me: please mail your sources (don't forget a potential .sch file).

The error -6208. is a "can't happen" error: Should never happen with a legal 4gl source. This is an indicator for an internal error in the runtime.

One question: Do you get the same error when starting the debugger (before calling 'run')?
Rene
Yes:--
Quote
dcdev5:D:5.5.6 Development 2.02.06:/home/mark/dcs/POM.4gm/XWATIF.4gs>make
        fgl2p -o XWATIF.42r     XWATIF.42m  XWAT_globals.42m  XWAT_pr_hdr.42m  /dcs/UTIL.4gm/U_print_func.42m  /dcs/UTIL.4gm/U_tran_track.42m  /dcs/UTIL.4gm/U_std_tools.42m  /dcs/UTIL.4gm/U_security.42m  XWAT_frm.42m
        fglform XWATIF.per

make of XWATIF.42r finished
===========================

XWATIF files copied
===========================

dcdev5:D:5.5.6 Development 2.02.06:/home/mark/dcs/POM.4gm/XWATIF.4gs>fglrun -d XWATIF.42r
Fdb 1: no such FUNCTION: U_security.check_process_txn
FORMS statement error number -6208.
Module 'U_security': already loaded.
A thought has occured to me: if there's a program running that is using this module, i.e. the 'old' version, could that produce this error?


Title: Re: FORMS statement error number -6208
Post by: Nuno G. on November 08, 2013, 12:41:40 pm
Hi!
I think Rene message was meant to Mark, but thank you any way.



Title: Re: FORMS statement error number -6208
Post by: Rene S. on November 08, 2013, 12:54:35 pm
Hello Mark,

>> A thought has occured to me: if there's a program running that is using this module, i.e. the 'old' version, could that produce this error?

This can cause a problem when running on Windows. Only on windows.
When running on Windows, disable mmap (sharing the byte code): add this in in fglprofile:
fglrun.mmapDisable = true

On the other hand: the compiler can not write the new .42m if the module is already loaded (again: windows only). fglcomp should throw an error in that case.

Also: please replace "fgl2p" in your makefile. The command to compile is "fglcomp". The command to link is "fglrun -l".
Rene
PS: if this does not help: Mark, you can mail me the sources...


Title: Re: FORMS statement error number -6208
Post by: Nuno G. on November 08, 2013, 12:57:36 pm
Hi Mark.
I've comparing your makefile with my own makefiles and I found no error on it! I'm out of ideas. So sorry...
Anyway, when dealing with makefile small errors, like spaces instead of tabs, are allways to consider.
In the hope it can, somehow, help you, I'm sending you, as an attcement, one of my makefiles. Maybe you can give it a go...
Best regards
Nuno


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 12:59:07 pm
Hi Mark.
I've comparing your makefile with my own makefiles and I found no error on it! I'm out of ideas. So sorry...
Anyway, when dealing with makefile small errors, like spaces instead of tabs, are allways to consider.
In the hope it can, somehow, help you, I'm sending you, as an attcement, one of my makefiles. Maybe you can give it a go...
Best regards
Nuno
Thanks for your help.  I didn't think the error would be in the makefile, since that is unchanged.


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 01:01:10 pm
Hello Mark,

>> A thought has occured to me: if there's a program running that is using this module, i.e. the 'old' version, could that produce this error?

This can cause a problem when running on Windows. Only on windows.
When running on Windows, disable mmap (sharing the byte code): add this in in fglprofile:
fglrun.mmapDisable = true

On the other hand: the compiler can not write the new .42m if the module is already loaded (again: windows only). fglcomp should throw an error in that case.

Also: please replace "fgl2p" in your makefile. The command to compile is "fglcomp". The command to link is "fglrun -l".
Rene
PS: if this does not help: Mark, you can mail me the sources...
Hi Rene, that didn't work.  Can I mail the source to you privately?  I don't want to post it on a public forum.


Title: Re: FORMS statement error number -6208
Post by: Rene S. on November 08, 2013, 01:02:59 pm
>>Hi Rene, that didn't work.  Can I mail the source to you privately?  I don't want to post it on a public forum.

That's the idea.
Rene


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 08, 2013, 01:05:07 pm
>>Hi Rene, that didn't work.  Can I mail the source to you privately?  I don't want to post it on a public forum.

That's the idea.
Rene
OK, I'm a new to this forum.  Where do I get your email address?


Title: Re: FORMS statement error number -6208
Post by: Reuben B. on November 09, 2013, 05:52:52 am
I've seen this error with FourGen style code where you have the same .4gl in two different directories.

Look at the value of $FGLLDPATH and check in each of these directories (and the current directory) for another instance of U_security.42m

If my hunch is right, if you have FGLLDPATH=/some_other_directory:dcs/UTIL.4gm you will find in some_other_directory another U_security.42m

Reuben



Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 11, 2013, 06:16:02 am
I've seen this error with FourGen style code where you have the same .4gl in two different directories.

Look at the value of $FGLLDPATH and check in each of these directories (and the current directory) for another instance of U_security.42m

If my hunch is right, if you have FGLLDPATH=/some_other_directory:dcs/UTIL.4gm you will find in some_other_directory another U_security.42m

Reuben


Thanks for your reply.  There is only one instance of this module in the FGLLDPATH directories.


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 11, 2013, 08:05:52 am
OK, I've found out what the problem was: the new module was not, for some reason, deployed to the modules directory, so the program was trying to run the old version.  I still have a question, however: should the error message not have been something along the lines of "Cannot find function xyz" instead of the cryptic message that "the module is already loaded."?


Title: Re: FORMS statement error number -6208
Post by: Rene S. on November 12, 2013, 08:33:25 am
Hello,
your problem des not exist in recent versions of Genero.

This is the output of a simple test, covering your problem: the runtime calls f1() and loads m2. When calling f2() the runtime tries to load m2 again.
Code
  1. sh test.sh
  2. + fglrun -V
  3. fglrun 2.02.20 build-966.107
  4. Built Nov 12 2013 08:11:39
  5. (c) 1989-2009 Four J's Development Tools
  6. + fglcomp m1
  7. + cp m2a.4gl m2.4gl
  8. + fglcomp m2
  9. + fglrun -l m1.42m m2.42m
  10. + fglrun m1
  11. here: f1
  12. here: f2
  13. + cp m2b.4gl m2.4gl
  14. + fglcomp m2
  15. + fglrun m1
  16. here: f1
  17. FORMS statement error number -6208.
  18. Module 'm2': already loaded.
  19.  

Now the same test with a recent version:
Code
  1. sh test.sh
  2. + fglrun -V
  3. fglrun 2.50.00 build-2201
  4. Genero virtual machine
  5. Target linux
  6.  
  7. Four Js*
  8. Licensed Materials - Property of Four Js
  9. (c) Copyright Four Js 1995, 2012. All Rights Reserved.
  10. * Trademark of Four Js Development Tools Europe Ltd
  11.  in the United States and elsewhere
  12. + fglcomp m1
  13. + cp m2a.4gl m2.4gl
  14. + fglcomp m2
  15. + fglrun -l m1.42m m2.42m
  16. + fglrun m1
  17. here: f1
  18. here: f2
  19. + cp m2b.4gl m2.4gl
  20. + fglcomp m2
  21. + fglrun m1
  22. here: f1
  23. Program stopped at 'm1.4gl', line number 3.
  24. FORMS statement error number -1338.
  25. The function 'f2' has not been defined in any module in the program.
  26.  

The error message should be enhanced anyway. The runtime should uses the (already existing) error 6207: The dynamic loaded module '%s' does not contain the function '%s'.

Rene


Title: Re: FORMS statement error number -6208
Post by: Mark W. on November 12, 2013, 08:36:06 am
Thanks Rene...