[Sugar-devel] "Another osbuild instance is running" error

Iain Brown Douglas iain at browndouglas.plus.com
Sat Jan 2 00:35:09 EST 2016


On Sat, 2016-01-02 at 10:21 +0530, Shraddha Barke wrote:
> 
> On Sat, 2 Jan 2016, James Cameron wrote:
> 
> > On Fri, Jan 01, 2016 at 08:38:34PM +0530, Shraddha Barke wrote:
> >>
> >>
> >> On Fri, 1 Jan 2016, James Cameron wrote:
> >>
> >>> On Thu, Dec 31, 2015 at 11:26:26PM +0530, Shraddha Barke wrote:
> >>>>
> >>>>
> >>>> On Thu, 31 Dec 2015, James Cameron wrote:
> >>>>
> >>>>> On Thu, Dec 31, 2015 at 03:38:02AM +0530, Shraddha Barke wrote:
> >>>>>>> On Wed, Dec 30, 2015 at 04:30:17AM +0530, Shraddha Barke wrote:
> >>>>>>>> I am trying to build sugar on Ubuntu 15.04 laptop. After git clone
> >>>>>>>> and cd into sugar-build I get this error-Another osbuild instance is
> >>>>>>>> running on executing ./osbuild pull
> >>>>>>>> I searched the internet and found 2 such threads but the issue wasn't
> >>>>>>>> resolved.
> >>>>>>>
> >>>>>>> There's more than two such threads on sugar-devel at .
> >>>>>>>
> >>>>>>>> Is this a bug that needs fixing?
> >>>>>>>
> >>>>>>> Yes, it's a bug in osbuild, please fix it.
> >>>>>>
> >>>> Hello James,
> >>>> I made the following changes in check_lock()
> >>>>
> >>>> def check_lock():
> >>>> -    try:
> >>>> -        fcntl.lockf(get_lock_file(), fcntl.LOCK_EX | fcntl.LOCK_NB)
> >>>> -    except IOError:
> >>>> -        return False
> >>>> -
> >>>> -    return True
> >>>> -
> >>>>
> >>>> +       pid = os.getpid()
> >>>> +       try:
> >>>> +            fcntl.lockf(pid, fcntl.LOCK_EX | fcntl.LOCK_NB)
> >>>> +       except IOError:
> >>>> +           return False
> >>>> +       try:
> >>>> +           os.kill(pid(), 0)
> >>>> +       except OSError:
> >>>> +            return False
> >>>> +        return True
> >>>
> >>> Ah, that's not what I meant.
> >>>
> >>> But I was wrong to suggest a redesign using getpid and kill, because
> >>> my analysis of the code _today_ shows the underlying cause must be
> >>> something other than locking.
> >>>
> >>> Let me explain.
> >>>
> >>> check_lock does try fcntl.lock, and if an exception IOError occurs,
> >>> does return False.
> >>>
> >>> But inside the same try clause is a call to get_lock_file.  Therefore
> >>> any IOError inside get_lock_file will also cause check_lock to return
> >>> False.
> >>>
> >>> A possible error is that the file could not be opened for write,
> >>> e.g. because it is owned by someone else, or the protection mask
> >>> (chmod) is wrong, or the directory does not exist, or the directory is
> >>> protected.
> >>>
> >>> def check_lock():
> >>>   lock_file = get_lock_file()
> >>>   try:
> >>>       fcntl.lockf(lock_file, fcntl.LOCK_EX | fcntl.LOCK_NB)
> >>>   except IOError:
> >>>       return False
> >>>
> >>>   return True
> >>>
> >>> As a result of this change, any problem opening and writing to the
> >>> file will be reported before the "another instance" error.
> >>>
> >>
> >> Ah Got it! Thanks :)
> >>
> >> Like you said it's a permission error. I've posted it below -
> >>
> >> Traceback (most recent call last):
> >>   File "./osbuild", line 504, in <module>
> >>     if not main():
> >>   File "./osbuild", line 467, in main
> >>     if not check_lock():
> >>   File "./osbuild", line 406, in check_lock
> >>     lock_file = get_lock_file()
> >>   File "./osbuild", line 90, in get_lock_file
> >>     lock_file = open(get_lock_file_path(), "w")
> >> IOError: [Errno 13] Permission denied:
> >> '/home/shraddha/git/sugar-build/.lock-host'
> >
> > Okay, that will certainly stop osbuild from working.
> >
> >>
> >>>>
> >>>> so that when there is no process running false is returned. However it is
> >>>> not fixing the bug.
> >>>> And yeah when I try to delete the lock file, I get 'file or
> >>>> directory doesn't exist'
> >>>
> >>> That's not possible to explain given the data you sent.
> >>>
> >>> You said the print statement showed the file path as
> >>>
> >>> .../git/sugar-build/.lock-host
> >>>
> >>> Presumably ... is something like /home/username
> >>>
> >>> Does the .lock-host file still exist?
> >>>
> >>> Show me "stat .lock-host"?
> >>>
> >>> If the file exists, but you cannot delete it, then osbuild will fail
> >>> to open it for write.
> >>>
> >>
> >> stat: cannot stat ‘.lock-host’: No such file or directory
> >>
> >> This is what I get. It's confusing that although it's failing to write,
> >> stat says no such directory exists!
> >
> > Ye, that is strange.  On the one hand the file exists and cannot be
> > opened for write, yet now the file does not exist.
> >
> > Please check you are in the right directory when you use stat, or use
> > stat with the same full path to the file (as reported by osbuild);
> >
> > 	stat /home/shraddha/git/sugar-build/.lock-host
> >
> > I'm trying not to presume any knowledge; if you only type "stat
> > .lock-host", then the stat program will look for the file .lock-host
> > in the current directory.  You can see what the current directory is
> > by typing "pwd".  You can change the current directory using the "cd"
> > command.
> 
> 
> stat: cannot stat ‘/home/shraddha/git/sugar-build/.lock-host’: No such 
> file or directory
> 
> I'm searching why this is happening. Meanwhile if anything strikes you
> do let me know
> 

Hi Shraddha,

May I ask, before this sugar-build failure, had you attempted to clone
and build sugar-build on your machine before?

I am thinking of a situation where you had tried and run out of time or
bandwidth, and decided to start over?

I have experienced this behaviour "when I try to delete the lock file, I
get 'file or directory doesn't exist'" - it is most frustrating.

Today, I have both .lock-host and .lock, as zero byte plain text
documents, in a fresh, working Debian sugar-build.

Can you see /home/shraddha/git/sugar-build/.lock-host in your regular
file manager?

I never reported it as a bug because I always thought (for a period of
over a year) it was self-inflicted due to starting over (several times)
on another partition.

I cannot yet explain how I have overcome the problem other than by
following along with the advice of James to you.

@James, thank you.

Regards,

Iain
> Kind Regards,
> Shraddha
> _______________________________________________ Sugar-devel mailing list Sugar-devel at lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel




More information about the Sugar-devel mailing list