Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fatal error processing COPY keyword. #1115

Open
OPMUSER opened this issue Aug 9, 2017 · 17 comments
Open

Fatal error processing COPY keyword. #1115

OPMUSER opened this issue Aug 9, 2017 · 17 comments

Comments

@OPMUSER
Copy link

OPMUSER commented Aug 9, 2017

Fatal error processing COPY keyword. when trying to copy MULTNUM in REGIONS section, using the following keywords:

-- CREATE FIPNUM BASED ON PETREL ZONES AS PER MULTNUM
-- 
-- -- SOURCE   DESTIN. --   ---------- BOX ---------                
--                          I1  I2   J1  J2   K1  K2                
COPY                                                                
   'MULTNUM'   'FIPNUM'     1*  1*   1*  1*   1*  1* / CREATE FIPNUM
/                                                                   

Note when running in parallel mode this causes a segmentation fault with no warning messages, if one then runs the same deck in serial mode one sees the message - see the attached file.
PAS-P50-C55.zip

@joakim-hove
Copy link
Member

OK - I think the problem is that the MULTNUM keyword is not defined; when processing COPYrecords like:

COPY                                                                
   'MULTNUM'   'FIPNUM'     1*  1*   1*  1*   1*  1* / CREATE FIPNUM
/

the parser expects the source keyword - i.e. MULTNUM in this case, to be explicitly defined in the deck. This restriction makes sense IMO in the case of keywords like e.g. PERMX where no sensible default is defined - i.e. I would consider this:

COPY
   'PERMX'   'PERMY' /
/

to be a user error if the PERMX has not been defined in the deck. However - in the case you mention there is a well defined default for the MULTNUM keyword, and automatic creation would be a valid alternative. So all in all - yes I agree this is a bug; although quite easy to work around by either assigning values to MULTNUM or assigning directly to FIPNUM

@OPMUSER
Copy link
Author

OPMUSER commented Aug 9, 2017

@joakim-hove The MULTNUM keyword is defined in the GRID section, so it should be available in the REGIONS section to duplicate Eclipse's behavior. So this is a bug as the array is defined.

I agree the work around is straight forward, but we should try to fix this if we can. Most engineers will just take their existing Eclipse decks and run them with OPM Flow to compare the results, if there are too many issues they will just give up.

@joakim-hove
Copy link
Member

The MULTNUM keyword is defined in the GRID section, so it should be available in the REGIONS section to duplicate Eclipse's behavior. So this is a bug as the array is defined.

OK - I agree. I understand what the bug is - slightly uncertain about the fix.

@joakim-hove
Copy link
Member

This: #1116 should have fixed the MULTNUMissue - can you try it?

@OPMUSER
Copy link
Author

OPMUSER commented Aug 10, 2017

How do I to get the binary - I'm not a developer so I don't have a build system.

@akva2
Copy link
Member

akva2 commented Aug 10, 2017

continuous deployment is on the road map, but it is not there right now. i can quickly build some packages for you, which platform ?

@OPMUSER
Copy link
Author

OPMUSER commented Aug 10, 2017

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

@akva2
Copy link
Member

akva2 commented Aug 10, 2017

took a bit longer than anticipated. due to substantial changes in libecl and opm-parser since last release i had to butcher packaging somewhat. thus these packages have not gone through my usual quality control, but i think they should do the job. for this reason i did not want to push them to a ppa, we do not want others using these by accident.

note you have to remove the stable packages before install, it will NOT update cleanly (due to things above and i had to cut some corners). there is no upscaling package as that shouldn't be needed here.

i have sent a dropbox link to your gmail with the tarball.

  1. sudo apt-get remove libopm* libert.ecl*
  2. tar jxvf opm-2017.08.10.tar.bz2
  3. cd opm-2017.08.10
  4. sudo dpkg -i *deb

note the packages are unsigned so it may complain about that.

you will also have to manually remove these before you can reinstall the stable packages.

@OPMUSER
Copy link
Author

OPMUSER commented Aug 11, 2017

@qkva2: When I go to extract the tar file I get this error:

ls
opm-2017.10.08.tar.bz2
baxendale@baxendale-VirtualBox:~/Downloads$ sudo tar jxvf opm-2017.08.10.tar.bz2tar (child): opm-2017.08.10.tar.bz2: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
baxendale@baxendale-VirtualBox:~/Downloads$ pwd
/home/baxendale/Downloads
baxendale@baxendale-VirtualBox:~/Downloads$

@OPMUSER
Copy link
Author

OPMUSER commented Aug 11, 2017

Found it wrong filename, :-)

@akva2
Copy link
Member

akva2 commented Aug 11, 2017

heh, sorry about that. doing non-norwegian dates is hard for me ;)

@OPMUSER
Copy link
Author

OPMUSER commented Aug 12, 2017

@akva2: I re-ran my test case with the new version as shown below:

PS1='\W\$pwd
/media/sf_Linux/OPM Flow/Pasca-A
Pasca-A$ flow PAS-P50-C55.DATA |& tee PAS-P50-C55.LOG
**********************************************************************
*                                                                    *
*                 This is flow (version 2017.10-pre)                 *
*                                                                    *
* Flow is a simulator for fully implicit three-phase black-oil flow, *
*            and is part of OPM. For more information see:           *
*                       http://opm-project.org                       *
*                                                                    *
**********************************************************************

Reading the deck file 'PAS-P50-C55.DATA'
Pasca-A$ ls PAS-P50-C55.*
PAS-P50-C55.DATA  PAS-P50-C55.ERR1  PAS-P50-C55.ERR2  PAS-P50-C55.ERRS  PAS-P50-C55.LOG  PAS-P50-C55.zip
Pasca-A$ 

But the run still does not run and still does not produce a PRT or DBUG file.

@joakim-hove
Copy link
Member

But the run still does not run and still does not produce a PRT or DBUG file.

OK - I must admit I thought this was more of a simulator problem than anything else; but maybe this is staill about the parser. Good if you can provide any error messages, or run flow in the debugger:

gdb flow_ebos
gdb> catch throw
gdb> run PAS-P50-C55.DATA

 **********************************************************************
 *                                                                    *
 *                 This is flow (version 2017.10-pre)                 *
 *                                                                    *
 * Flow is a simulator for fully implicit three-phase black-oil flow, *
 *            and is part of OPM. For more information see:           *
 *                       http://opm-project.org                       *
 *                                                                    *
 **********************************************************************

gdb> bt

@OPMUSER
Copy link
Author

OPMUSER commented Aug 21, 2017

Joakim,
Well a little bit more information :-)

gdb flow_ebos
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from flow_ebos...(no debugging symbols found)...done.
(gdb) catch throw
Catchpoint 1 (throw)
(gdb) run PAS-P50-C55.DATA
Starting program: /usr/bin/flow_ebos PAS-P50-C55.DATA
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffec406700 (LWP 14321)]
**********************************************************************
*                                                                    *
*                 This is flow (version 2017.10-pre)                 *
*                                                                    *
* Flow is a simulator for fully implicit three-phase black-oil flow, *
*            and is part of OPM. For more information see:           *
*                       http://opm-project.org                       *
*                                                                    *
**********************************************************************

Reading the deck file 'PAS-P50-C55.DATA'
[Thread 0x7ffff7fc4740 (LWP 14317) exited]

Program terminated with signal SIGKILL, Killed.
The program no longer exists.
(gdb) bt
No stack.
(gdb) q
Pasca-A$ 

@joakim-hove
Copy link
Member

Reading the deck file 'PAS-P50-C55.DATA'
[Thread 0x7ffff7fc4740 (LWP 14317) exited]
 
Program terminated with signal SIGKILL, Killed.

OK - that was really brutal - can you share the input deck PAS-P50-C55 with me in some way?

@OPMUSER
Copy link
Author

OPMUSER commented Aug 21, 2017

Yep, I thought you might say that. Unfortunately, I cannot share the model as it is a client's model and I'm under a CA.

If you know where this is happening and you wish to pursue this further, then if you put some debug in the code and send me a new version of Flow then I'll run it with the deck again. If you could write out the messages as the deck is being processed for example, then may be we can find which keywords are causing the problem and then may be I can build a test case with same issue. At the moment I have no idea what is causing this.

@alfbr
Copy link
Member

alfbr commented Aug 22, 2017

I am afraid it necessary to be able to reproduce the problem in order to fix it. Sharing datasets is always very challenging since they are conceived as valuable and proprietary to the owner. However, I do believe it is possible to get around it. @OPMUSER since you have already identified the offending keyword, are you able to create a dummy deck (which is unproblematic to share) based on that keyword, or combination of keywords, that reproduces the bug? Sorry to impose this burden on you, but I am afraid that will be necessary here. Moreover, such test decks are very welcome to our test-suite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants