OSError No child Processes

Asked by blairon

Hello,
I try to run the gravity.py from the tutorial.
The system generate 4 pictures instead of 200
and hang printing the following
File "/usr/lib/python2.6/popen2.py", line 108, in wait
   pid, sts = os.waitpid(self.pid, 0)
OSError: [Errno 10] No child processes
J.M.

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
blairon
Solved:
Last query:
Last reply:
Revision history for this message
Dion Weatherley (d-weatherley) said :
#1

Hi J.M.,

I suspect this error is related to a race condition in popen2, which is deprecated in Python-2.6. In the latest development version of ESyS-Particle we have switched to using subprocess instead of popen2. I would be interested to see if you still get the error with the latest development version.

This FAQ explains how to obtain a copy of the development version:
https://answers.launchpad.net/esys-particle/+faq/711

Instructions on how to compile ESyS-Particle from source are here:
https://answers.launchpad.net/esys-particle/+faq/712

If you decide to install the development version, make sure you first change directory to the v2.0 source code and 'sudo make uninstall' and 'make distclean' to remove the older version of ESyS-Particle from your system.

Cheers,

Dion.

Revision history for this message
blairon (jean-marie-blairon) said :
#2

Thanks Dion,
but I am a beginner in Linux, so I will not try to install the development version
now. I need help from a system engineer knowing linux from here, this may take some days.

cheers,
J.M.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#3

Hi J.M.,

It's always good to get some local help when you're new to linux. However, it is really no more difficult to install the development version of ESyS-Particle than it was to install the stable v2.0 version. Don't be afraid to try it! If you get stuck you can ask questions here on launchpad and I'm sure someone will help.

Cheers,

Dion.

Revision history for this message
blairon (jean-marie-blairon) said :
#4

Hello,
I tried to do 'sudo make uninstall' in the /usr/local/src/esys-particle-2.0
but the system respond
make: *** No rule to make target `uninstall'. Stop.
what's wrong?
J.M.

Revision history for this message
Anton Gladky (gladky-anton) said :
#5

Hi,

You have to do "sudo make uninstall" directly from the directory, where you
did "sudo make install".
______________________________

Anton Gladkyy

2010/2/12 blairon <email address hidden>

> Question #98986 on ESyS-Particle changed:
> https://answers.launchpad.net/esys-particle/+question/98986
>
> Status: Answered => Open
>
> blairon is still having a problem:
> Hello,
> I tried to do 'sudo make uninstall' in the /usr/local/src/esys-particle-2.0
> but the system respond
> make: *** No rule to make target `uninstall'. Stop.
> what's wrong?
> J.M.
>
> --
> You received this question notification because you are an answer
> contact for ESyS-Particle.
>

Revision history for this message
Dion Weatherley (d-weatherley) said :
#6

Hi J.M.,

Are you perhaps using a PC with the ESyS-Particle Ubuntu Live DVD or an installation from that DVD? I seem to recall putting the source code for that distribution in
/usr/local/src/esys-particle-2.0

If that is the case, here's what you need to do to uninstall the old version:

1) cd /usr/local/src/esys-particle-2.0
2) sh autogen.sh
3) ./configure CC=mpicc CXX=mpicxx
4) sudo make uninstall

If that doesn't work (you see error messages) try manually uninstalling ESyS-Particle by following these instructions:
https://answers.launchpad.net/esys-particle/+faq/947

Once you've uninstalled the old version of ESyS-Particle, you can install the new version like this:

1) svn checkout https://svn.esscc.uq.edu.au/svn/esys3/lsm/trunk esys-particle-dev
2) cd esys-particle-dev
3) sh autogen.sh
4) ./configure CC=mpicc CXX=mpicxx --without-epydoc
5) make
6) sudo make install

Cheers,

Dion.

Revision history for this message
blairon (jean-marie-blairon) said :
#7

Hi Dion,
yes I use the ESyS-Particle Ubuntu installation from the Live DVD.
So I uninstall the old version as you explain. It seem's to be ok.
then I did the svn checkout, the sh autogen.sh, the ./configure
as you explain
and when I try the make, I get a lot of error, the first 3 are

In file included from loaders/dlopen.c:32:
libltdl/lt__private.h:35:23: error: #include expects "FILENAME" or <FILENAME>
In file included from libltdl/lt__private.h:52,
                 from loaders/dlopen.c:32:
libltdl/lt__dirent.h:35:23: error: #include expects "FILENAME" or <FILENAME>
In file included from libltdl/lt__private.h:52,
                 from loaders/dlopen.c:32:
libltdl/lt__dirent.h:84: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘-’ token
cheers
J.M.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#8

Opps, sorry J.M. I forgot that the Live DVD uses mpich. You need to add a couple more steps when compiling the new version. The steps are:

1) svn checkout https://svn.esscc.uq.edu.au/svn/esys3/lsm/trunk esys-particle-dev
2) cd esys-particle-dev
3) sh autogen.sh
4) ./configure CC=mpicc CXX=mpicxx --without-epydoc
5) cd libltdl
6) ./configure
7) cd ..
5) make
6) sudo make install

Cheers,

Dion.

Revision history for this message
blairon (jean-marie-blairon) said :
#9

Hi,
now the make and the sudo make install seems to be ok.
If I try the command
mpirun -np 2 'which mpipython' bingle_output.py
I get the following error
Warning: Command line arguments for program should be given
after the program name. Assuming that bingle_output.py is a
command line argument for the program.
Missing: program name
Program which mpipython either does not exist, is not
executable, or is an erroneous argument to mpirun.
J.M.

Revision history for this message
Anton Gladky (gladky-anton) said :
#10

Hi,

try:
   mpirun -np 2 /usr/local/bin/mpipython bingle_output.py
But before check, is it a correct absolute path.

Bye,
______________________________

Anton Gladkyy

2010/2/16 blairon <email address hidden>

> Question #98986 on ESyS-Particle changed:
> https://answers.launchpad.net/esys-particle/+question/98986
>
> Status: Answered => Open
>
> blairon is still having a problem:
> Hi,
> now the make and the sudo make install seems to be ok.
> If I try the command
> mpirun -np 2 'which mpipython' bingle_output.py
> I get the following error
> Warning: Command line arguments for program should be given
> after the program name. Assuming that bingle_output.py is a
> command line argument for the program.
> Missing: program name
> Program which mpipython either does not exist, is not
> executable, or is an erroneous argument to mpirun.
> J.M.
>
> --
> You received this question notification because you are an answer
> contact for ESyS-Particle.
>

Revision history for this message
blairon (jean-marie-blairon) said :
#11

Hi Anton,
It works as you suggest, thanks.
but now if I try to run gravity.py I still have the problem I had at the beginning.
The error message is
  File "/usr/local/lib/python2.6/dist-packages/esys/lsm/util/Process.py", line 82, in wait
    return self.popen.wait()
  File "/usr/lib/python2.6/subprocess.py", line 1123, in wait
    pid, sts = os.waitpid(self.pid, 0)
OSError: [Errno 10] No child processes

and the system hang.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#12

Hi J.M.,

I'm afraid we may have been going in circles when I advised you to upgrade to the latest version of ESyS-Particle. At that time I did not realise you were using the ESyS-Particle Live DVD. There is obviously something different going wrong than I first thought. Looks like we will need to try to reproduce your error on another PC to help fix the problem. To do so, I'll need some more information:

1) Did you install the ESyS-Particle Ubuntu distribution onto the hard disk of your PC or are you booting your PC from the Live DVD?

2) What hardware do you have in your PC (specifically the type and number of CPUs, and amount of memory)?

3) If you installed the ESyS-Particle Ubuntu distribution on your hard disk, have you done any updates of installed packages since installation? You would have had to enter a password and clicked a button to install updates.

In the meantime, you should be able to continue working through the tutorials but you should delete or comment out any lines of code related to the POVsnaps runnable. I suspect everything else is working fine. I'll try to find time in the next few days to write a guide on how to use checkpoint files and 'dump2vtk' to visualise simulation output without using the povray module. Only the povray module uses the Python subprocess/popen2 subroutine so the rest of ESyS-Particle should be unaffected.

I'm sorry you are having such problems. I had hoped the Live DVD would be helpful for those new to linux but I must admit I am also something of an amateur when it comes to producing a customised linux distribution like the ESyS-Particle Live DVD. It is only my second attempt so bugs were to be expected unfortunately.

For what it is worth, I don't really recommend using the povray module for serious simulations. It is just handy for visualising small test simulations like those in the Tutorial. Checkpoint files and dump2vtk is a much better solution in the long run.

Cheers,

Dion.

Revision history for this message
blairon (jean-marie-blairon) said :
#13

Hi Dion,
1) I have installed Esys-Particle Ubuntu on the hard disk.
2) 2 cpu Intel E8400 @ 3.00GHz with 8 GiB
3) yes I made some updates, I don't remember which one.
Do you think it may be a good idea to reinstall the all stuff from the live DVD without
updating any package?
thank for your help
J.M.

Revision history for this message
Anton Gladky (gladky-anton) said :
#14

Hi,

On my own opinion, if you want further simulate something, it will be easier for you just to install simple Ubuntu and then compile SVN-version of ESyS.
It is really easy. Just follow https://answers.launchpad.net/esys-particle/+faq/261 or/and https://answers.launchpad.net/esys-particle/+faq/712

Other necessary software can be installed from packages.

Good Luck!

Revision history for this message
Dion Weatherley (d-weatherley) said :
#15

Hi J.M.,

Before you do any changes (like re-install your OS) try booting from the Live DVD and run gravity.py in the Live session (don't click the install icon on the desktop though!). I'd like to know if you get the same error in a Live session.

If you don't get any errors when running from the Live session then an update at some stage may have broken an installed package. In such case, I recommend you re-install your operating system. I agree with Anton that starting with a vanilla Ubuntu (e.g. Ubuntu-9.10) and following the instructions in the FAQs would be better than re-installing from the Live DVD.

Good luck.

Dion

Revision history for this message
blairon (jean-marie-blairon) said :
#16

Hi Dion and Anton,
the problem is not present with the live DVD!
So it must due to an update somewhere.
Do you suggest to don't update the system?
Thanks for your time.
kind regards
J.M.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#17

Hi J.M.,

OK, it's a relief to me that the original Live DVD still works! You really have two choices from here:

1) re-install your operating system from the ESyS-Particle Live DVD and avoid updates (there's a small but potential security issue with this choice as important updates may be ignored)

2) install a newer version of Ubuntu on your PC then install ESyS-Particle via the instructions in this FAQ:
https://answers.launchpad.net/esys-particle/+faq/261

The second option is probably better as ESyS-Particle seems to work well on Ubuntu-9.10 (even after upgrades!) but you need to do more work to get up and running with ESyS-Particle e.g. to download the extra packages needed before compiling ESyS-Particle.

Really I think the choice is yours. If you feel more comfortable using the OS provided on the ESyS-Particle Live DVD until more familiar with linux, then perhaps that is easier. I'll try to help out where I can if you have trouble with the installation but I'm not an expert at producing custom Ubuntu distributions so unexpected problems may arise.

Perhaps it is also worth looking for a local linux expert or LUG (Linux User Group) who may be able to help if you strike problems. This site may help you find a nearby LUG:
http://www.linux.org/groups/

Have fun!

Dion.

Revision history for this message
Anton Gladky (gladky-anton) said :
#18

Hi Dion,
2010/2/17 Dion Weatherley <email address hidden>

> The second option is probably better as ESyS-Particle seems to work well
> on Ubuntu-9.10 (even after upgrades!) but you need to do more work to
> get up and running with ESyS-Particle e.g. to download the extra
> packages needed before compiling ESyS-Particle.
>
>
I can confirm, that ESyS works on Ubuntu 9.10. But it works reliable only
with mpich-shmem.
Openmpi causes hangings with more, than 2 threads.
https://answers.launchpad.net/esys-particle/+question/90446

I have not yet tested it on Lucid. Maybe it is fixed there already.

Cheers,
______________________________

Anton Gladkyy

Revision history for this message
blairon (jean-marie-blairon) said :
#19

Hi,
I reinstalled Ubuntu from the live DVD by reformating the whole disk.
With Esys running on the harddisk, and without any update, the problem come back !!!
So it is not a problem of update, the problem disappear with the live DVD and is there with the hdd.
The live DVD is very slow compare to the hdd and so the problem may come from synchronisation between processes.
Now, when the problem is appearing, the job hang but there are two mpipython process still running for hours and
doing nothing apparently.
I tried to start the gravity job in background, and after occurence of the OSError: [Errno 10] No child processes,
I started the same job but in foreground, and then it works perfectly.
So now I have 2 mpipython process running permanently, and every job from the tutorial run fine.
cheers,
J.M.