Euphoria Ticket #372: seek() error in GetMsgText

I added dbname=%s... to see what it was looking for. I do not have this file yet it seems to try and use it. Not exactly sure what's going on here so I'm including what info I can.


jeremy@jlaptop:~/projects/euphoria/tests$ ../build/eui ../source/int.ex t_base64.e  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
/home/jeremy/projects/euphoria/include/std/base64.e:154  
<0056>:: character constant is missing a closing '  
    in = replace_all(in, '\r\n', "")  
                            ^  
  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
dbname=teksto_en.edb  
dbname=/home/jeremy/projects/euphoria/tests/teksto.edb  
  
/home/jeremy/projects/euphoria/include/std/eds.e:461 in procedure safe_seek()  
file must be open for seek()  
  
... called from /home/jeremy/projects/euphoria/include/std/eds.e:1432 in function table_find()  
  
... called from /home/jeremy/projects/euphoria/include/std/eds.e:1488 in function db_select_table()  
  
... called from /home/jeremy/projects/euphoria/include/std/text.e:2045 in function get_text()  
  
... called from /home/jeremy/projects/euphoria/source/msgtext.e:371 in function GetMsgText()  
  
... called from /home/jeremy/projects/euphoria/source/error.e:188 in procedure Cleanup()  
  
... called from /home/jeremy/projects/euphoria/source/error.e:276 in procedure CompileErr()  
  
... called from /home/jeremy/projects/euphoria/source/scanner.e:1883 in function Scanner()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:655 in function next_token()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:832 in procedure ParseArgs()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1150 in procedure Function_call()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1268 in procedure Factor()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1294 in procedure UFactor()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1303 in function Term()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1318 in function aexpr()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1332 in function cexpr()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1355 in function rexpr()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1390 in procedure Expr()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:1606 in procedure Assignment()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:3664 in procedure Statement_list()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:4121 in procedure SubProg()  
  
... called from /home/jeremy/projects/euphoria/source/parser.e:4491 in procedure real_parser()  
  
... called from /home/jeremy/projects/euphoria/source/main.e:195 in procedure main()  
  
... called from /home/jeremy/projects/euphoria/source/main.e:215  
  
--> See ex.err  

Details

Type: Bug Report Severity: Normal Category: Library Routine
Assigned To: DerekParnell Status: Fixed Reported Release:
Fixed in SVN #: 4047 View VCS: 4047 Milestone: 4.0.0RC2

1. Comment by DerekParnell Nov 12, 2010

Seems to be a bug inside eds.e.

2. Comment by jeremy Nov 12, 2010

How costly is it to open/close the database that often? Should it just be opened and left opened?

3. Comment by DerekParnell Nov 12, 2010

That's the bug ... eds does NOT open/close the database. Well its not supposed to but it seems that either it did close a db or got the file handle messed up.

The db open is cached so subsequent db_select() calls reuse the db's handle, even if you open many dbs at once.

4. Comment by DerekParnell Nov 13, 2010

The bug was actually in source/error.e. In the CleanUp() routine, it closes every file but after doing that, it goes to the message database to get the final message text before ending the app. However by that time, the message database has been closed and eds.e doesn't know that. So eds tries to seek() into the db file, which of course fails.

5. Comment by DerekParnell Nov 13, 2010

Euphoria now closes all files just before exiting the application.

Search



Quick Links

User menu

Not signed in.

Misc Menu