[Scons-users] Random build failure with 'Resource temporarily unavailable' on mac

Julien Pommier pommier at pianoteq.com
Fri Jun 12 09:38:58 EDT 2020


Unfortunately I can’t manage to reproduce it on something simplified, and it is really complicated to track because it is the kind of bug that disappears when you look at it.

 It is not a big deal to me anymore as I have a workaround, but I wanted to know if this issue was also encountered by other scons users.

> On 10 Jun 2020, at 21:19, Bill Deegan <bill at baddogconsulting.com> wrote:
> 
> Can you provide a small reproducer?
> 
> On Wed, Jun 10, 2020 at 3:58 AM Julien Pommier <pommier at pianoteq.com <mailto:pommier at pianoteq.com>> wrote:
> Hi,
> 
> I have an issue that has been randomly annoying me for a few years, when building a largish application on macs. From time to time, the build will fail with this error:
> 
>  *** [build/darwin/foo.o] Resource temporarily unavailable
> 
> It does not always happen at the same place in the build, it is really random and hard to reproduce. I have finally traced which instruction is failing in scons, and it turns out it is:
> 
>                 sys.stdout.write(s + u"\n”) , in print_cmd_line in Action.py 
> 
> which sometime throws an IOError (errno=35) exception. 
> 
> I feel that this happens only when building with more than one job, so maybe this is related to a threading issue or bug in python ? This happens when running scons with the system installed python 2.7 (which I usually do), but also with python3 — in that case, the error reported with python 3 is
> 
> scons:  *** [build/darwin/foo.o] write could not complete without blocking
> 
> The exception stack trace is:
> 
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Taskmaster.py", line 255, in execute
>     self.targets[0].build()
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Node/__init__.py", line 765, in build
>     self.get_executor()(self, **kw)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Executor.py", line 397, in __call__
>     return _do_execute_map[self._do_execute](self, target, kw)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Executor.py", line 128, in execute_action_list
>     status = act(*args, **kw)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Action.py", line 1056, in __call__
>     show, execute, chdir, executor)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Action.py", line 1123, in __call__
>     return c.__call__(self, target, source, env, *args, **kw)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Action.py", line 705, in __call__
>     print_func(cmd, target, source, env)
>   File "/usr/local/Cellar/scons/3.1.1/libexec/scons-local/SCons/Action.py", line 639, in print_cmd_line
>     sys.stdout.write(s + u"\n")
> scons: *** [build/darwin/foo.o] write could not complete without blocking
> 
> I have figured a “fix” which is to just ignore IOError exceptions in the print_cmd_line function, but of course this is not very satisfactory.
> 
> 
> 
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org <mailto:Scons-users at scons.org>
> https://pairlist4.pair.net/mailman/listinfo/scons-users <https://pairlist4.pair.net/mailman/listinfo/scons-users>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20200612/8ccfaee4/attachment.html>


More information about the Scons-users mailing list