.
contact contact

Eloquence known problems

 
.
  This page documents problems which have been encountered with Eloquence and possible workarounds. Please refer to the Eloquence Patches document for a list of available patches.

The most recent Eloquence release is A.06.31 which includes all previous patches and additional enhancements. If you are using a previous Eloquence version we recommend to update to A.06.31.

In addition to this page there are separate documents on known issues with Eloquence which are either not related to code defects or have a low priority because an easy workaround is available.

Please note: Just because a problem description is present on this page does not necessarily imply we consider it a bug. Some entries are here for mere documentation purposes (they're usually documented in the Release Notes as well).

This page is provided in the intention to be helpful to our customers. However the information is provided "AS IS" without any warranty (we could have a bug on the bug page?).


The following problems have been encountered with Eloquence (with the recent patches installed) and are currently under investigation.

All platforms

  • Termination of eloqdb5 may fail to cleanup semaphore and shared memory. When the eloqdb5 process is killed a shared memory segment and a semaphore set may not be cleanup up by eloqdb5 and will remain active in the system. This may cause exhaustion of system IPC resources.

    Workaround: As a quick workaround you can disable the use of IPC resources by eloqdb5 by setting EnableIPC = 0 in the [Server] section of your eloqdb5.cfg config file.

    Fix: This is fixed by patch PE-9811090 (beta).

  • DBLOCK (mode 5,6,15,16) could fail with status -122. This could happen when using a PREDICATE DBLOCK (mode 5,6,15,16) on set or item number 64 with the eloqdb6 server running on systems with little endian architecture (Intel).

    Workaround: None

    Fix: This is fixed by patch PE-9810290 (beta).

  • Using the same variable more than once in a SORT BY statement and specifying the DES option causes an internal error. For example: SORT BY A,A

    Workaround: Don't do this :-)

    Fix: This is fixed by patch PE61-9808200

  • eloqcore fails with an internal error in the SORT statement when array variables are used. For example: SORT BY A(1)
    Assertion failed: (no_bytes+recl==res_size+skipped_set_cnt*sizeof(int32_t)), file sort.c line 2393.

    This is caused by a bug in the implementation of the SORT statement.

    Workaround: As a quick workaround you can disable the SCAN API in the eloqdb6 server by setting DisableScan = 1 in the [Server] section of your eloqdb6.cfg config file. This will cause eloqcore to use the old (slower) strategy.

    Fix: This is fixed by patch PE61-9808200

  • A rollback operation could lead to index corruption.

    In a rare condition a rollback operation could discard index modifications not related to current transaction.

    Fix: This is fixed by patch PE61-9807270

  • eloqcore fails with an internal error in the FIND or SORT statement.
    Assertion failed: (pwf->item[0] < iset->s.item_cnt), file sort.c line 1594.

    This was caused by a wrong assert which could fail when the first set in thread is a detail set.

    Workaround: As a quick workaround you can disable the SCAN API in the eloqdb6 server by setting DisableScan = 1 in the [Server] section of your eloqdb6.cfg config file. This will cause eloqcore to use the old (slower) strategy.

    Fix: This is fixed by patch PE61-9807090

  • eloqcore could fail with an internal error in the SORT statement when duplicate sort variables are used. For example: SORT BY A,B,B

    Fix: This is fixed by patch PE61-9807090

  • eloqcore fails with an internal error in the FIND or SORT statement.
    Assertion failed: (i < bmap_iset->s.item_cnt), file sort.c line 2551.

    This is caused by a defect in the bmap_item_ofs() function (which is used by FIND and SORT) with the new A.06.10 scan db API which could calculate the wrong offset into scan results when items with more than one element (array) was skipped in the set.

    Workaround: As a quick workaround you can disable the SCAN API in the eloqdb6 server by setting DisableScan = 1 in the [Server] section of your eloqdb6.cfg config file. This will cause eloqcore to use the old (slower) strategy.

    Fix: This is fixed by patch PE61-9807090

  • eloqcore fails with an internal error in the FIND or SORT statement.
    Assertion failed: (i < bmap_iset->s.item_cnt), file sort.c line 2761.

    This is caused by a defect in the find1() function (which is used by FIND and SORT) with the new A.06.10 scan db API which fails when the first set in thread is a master set and master and detail sets use different items.

    Workaround: As a quick workaround you can disable the SCAN API in the eloqdb6 server by setting DisableScan = 1 in the [Server] section of your eloqdb6.cfg config file. This will cause eloqcore to use the old (slower) strategy.

    Fix: This is fixed by patch PE61-9807090

  • QUERY has problems with record numbers > 1 Mio. This is caused by a SHORT variable which is used to read record numbers from a workfile. When the record number exceeds 6 digits it is rounded. A patch will be available soon.

    Workaround: Change the SHORT Arg(1:16) in QREX01 and QREX03 to DINTEGER Arg(1:16). There is a total of three lines which need to be changed.

    Fix: This is fixed by patch PE61-9806180

  • DBEXPLAIN$ returnes partially wrong message for DBUPDATE status (#730)

    Fix: This is fixed by patch PE61-9806150

  • Possible wrong scroll indicator with ASCII DLG. When using the .cx method to set the cursor x position in ASCII DLG a scroll indicator may be drawn which is not required. (#672)

  • Single line functions with a member variable cause an internal failure in eloqcore and store while parsing the statement. (#666)
    DEF FNFunction(STRUCT This)=(This.Member<>0)
    -> Assertion failed: (cg == 1) file codegen.c, line 1142
    

  • ERROR 10 returning a string member variable from a function (#664)
    DEF FNX$
       ...
       I1.S$="XXX"
       RETURN I1.S$
    
    This is caused by a flaw in Eloquence. A member variable is not recognized as a string in this particular case.

    Workaround: As a workaround, you can use RETURN I1.S$&"".

    Fix: This is fixed by patch PE61-9808200

  • A problem with list causes the "array indicator" (*) to disappear when using a structure array member as a SUB/Function argument (#652). For example:
    Error=FNMake_label(Base$,Label$(*),Fu_ns.Titles$(*), Fu_ns.Address$(*), Fu_ns.City$,Fu_ns.State$,Fu_ns.Zip$, Fu_ns.Country_code$)

  • A scanner anomaly has been detected. The statement "NEW Fu_ns AS New_sales" results in a syntax error due to a conflict with the ASN keyword. As a workaround you can use a colon instead of AS: "NEW Fu_ns:New_sales" (#663).

  • Bus error on duplicate udef type declaration when executed from a program. (#574)

    The problem was a duplicate type declaration in a program being loaded. (DIM Instance:Type appears two times in the main segment).

    When loaded by typing the command: LOAD "X1" the diagnostic ERROR 12 IN LINE nnnn was printed on the screen. But when loaded by command from another program (LOAD "X"&VAL$(1)), a bus error was the result.

  • Cross reference (list -x) complains about user defined types
    The cross reference (list -x) currently has some problems dealing with user defined types (STRUCT). It is complaining about multiply declared or unused member variables. (#458)

HP-UX Platform

  • Patch PHCO_10947 (curses patch)
    If you are on HP-UX 10.20 we recommend to install the HP-UX patch PHCO_10947. Please refer to the patch documentation PHCO_10947.text for more information.
    The patch can be obtained from Hewlett.Packard or is available for download at ftp://ftp.marxmeier.com/eloq/A0610/hpux/PHCO_10947

  • The libeloq.a may be affected by a compiler optimizer bug. This could result in errorneous behaviour (wrong runtime errors) when using the A.06.xx libeloq.a library to create Eloquence DLLs.

    We are currently investigating this issue. As far as we know, this may be related to the +Oregionsched optimizon which creates wrong object code for the dllif.o object file.

    Workaround: As a workaround you should be able to use the Eloquence A.05.xx libeloq.a library. Since (on the HP-UX platform) the DLL part of the libeloq.a library is compatible, you could simply link against the A.05.xx version unless you require A.06.xx database access in your DLL.

Linux Platform

  • The eloqcore behaviour on files opened in UPDATE mode was inconsistent with the HP-UX platform.

    When re-reading data from a file opened in UPDATE mode without previous locking, the data could be fetched from a buffer rather than re-read from the file. On HP-UX the file is re-read.

    Fix: This is fixed by patch PE61-9807090

  • The Linux curses implementation (ncurses) has problems with HP terminal types, enhancements could be displayed wrongly. This is a known problem and we are in contact with the maintainer.

    The workaround is to use HP terminals and the WRQ Reflection/1 emulation software in the EM220 mode. Sabine Günther has donated a terminal adaption for the EM220 mode and we will publish it in a subsequent patch.

  • The xterm terminal emulator does not work properly with Eloquence. We are working on a terminal adaption for the xterm terminal emulator and will publish it in a subsequent patch.

Windows Platform

  • The RND function returns value in the wrong range. Results should be between 0 and 1 but actually are 0 to 32767.

    Workaround: As a workaround you should divide the RND results by 32767 on the Windows platform.

    PRINT RND/32767
    

  • Some problem fixes and enhancements for the Eloquence GUI server are currently beeing worked on. Besides the problem fixes, current results should provide a significant performance improovement.

    A patch is available: Please refer to document PE61-9808190-README for more information. The patch is available for download on the ftp server at ftp://ftp.marxmeier.com/eloq/A0610/patch/beta/.

    Please note that this patch is currently in beta test and has not been released.

  • The TopItem attribute is currently not recognized by the DLGSRV as a mapped attribute. As a workaround, you could use TopItem as a native attribute. Just separate the attribute and object path with an exclamation mark instead of a dot. (#450)
    DLG SET "Dialog.ListBox!TopItem",3
    

    Fix: This is fixed in beta patch: PE61-9808190-README (see above)

  • The .h attribute is currently ignored by DLGSRV for PushButton objects. As a workaround, you could use Height as a native attribute. Just separate the attribute and object path with an exclamation mark instead of a dot. (#463)

    Workaround:

    DLG SET "Dialog.Pb_OK!Height",3
    

 
 
.
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision:  1998-11-09  
  Copyright © 1995-2002 Marxmeier Software AG