lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fatal error messages


From: David Wright
Subject: Re: Fatal error messages
Date: Sat, 26 Feb 2022 10:12:13 -0600
User-agent: Mutt/1.10.1 (2018-07-13)

On Sat 26 Feb 2022 at 00:40:20 (+0000), Alasdair McAndrew wrote:
> I've been using Lilypond, with Frescobaldi, on Linux happily for ages.
> But today, when I tried to compile a few bars in Frescobaldi, I got
> the error:
> 
>       fatal error: cannot create temp file: my_music_file.midi. 40227fc:
> Permission denied
> 
> This is a first for me, and I tried running Lilypond on an old file,
> which had compiled successfully before - again the same error.  But
> also, when I commented out the "midi" part of my score block, I got a
> new error:
> 
>       Drawing systems...guile: uncaught throw to system-error:
> (("open-fdes" "~A" ("Permission denied") (13)))
> 
> Clearly something has gone very wrong - but what?  How do I find out
> where the problem is, and how to fix it?
> 
> Note that Lilypond always writes its files into the current directory,
> of which I have full user permission.  I don't know if Lilypond writes
> temporary files into another directory (say "/tmp") but there's plenty
> of room there - it's not as though the filesystem is full.

I can replicate both these errors by running LP in a directory to
which I don't have write-access. (Where the source is doesn't matter.)
The second error message is a little more obscure, but running under
strace shows that LP is trying to open a file for writing PostScript into:

  openat(AT_FDCWD, "K-310-1-tmp-7076704", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 
EACCES (Permission denied)
  write(2, "guile: uncaught throw to system-"..., 87guile: uncaught throw to 
system-error: (("open-fdes" "~A" ("Permission denied") (13)))) = 87

as opposed to the successful:

  openat(AT_FDCWD, "K-310-1-tmp-6623645", O_WRONLY|O_CREAT|O_EXCL, 0666) = 21
  fcntl(21, F_GETFL)                      = 0x8001 (flags O_WRONLY|O_LARGEFILE)
  lseek(21, 0, SEEK_CUR)                  = 0
  fstat(21, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
  openat(AT_FDCWD, "K-310-1-tmp-6623645", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 22
  fcntl(22, F_GETFL)                      = 0x8001 (flags O_WRONLY|O_LARGEFILE)
  lseek(22, 0, SEEK_CUR)                  = 0
  fstat(22, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
  close(21)                               = 0

(You only observed what's written on stream 2.)

So I can only suggest that your cwd might not be what you think it is.
If your second example was run with just LP, I would ask how you're
invoking it: from a command line, or by dragging/clicking something?
GUIs might be cranking some unseen machinery behind the scenes that
changes cwd.

Cheers,
David.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]