Speicherzugriffsfehler (gelöst)

Begonnen von messingsound, Samstag, 24. Juni 2017, 10:47

« vorheriges - nächstes »

messingsound

Hallo Forum,

ich hatte mir aus dem Mutopia-Projekt das Mozart-Hornkonzert KV 447 runtergeladen, Datei MozartHornConcerto3-lys.zip, und die Hornstimmen sind einwandfrei durchgelaufen.
seitdem ich mein Linux upgedated hab, erhalte ich einen Speicherzugriffsfehler.:
kleine Lilypond-Dateien kompilieren.


Hier ist die aktuelle Formation
Zitat
Linux schreibtisch 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2 (2017-06-12) i686 GNU/Linux

Dies ist die Ausgabe von lilypond

Zitat
~/Musik/Noten/Brass/MozartHornConcerto3-lys$
GNU LilyPond 2.18.2
»horn_f.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...[8][16][24][32][40][48][56][64][72][80][88][96][104][112][120]
Vorverarbeitung der grafischen Elemente...
Interpretation der Musik...[8][16][24][32][40][48]
Vorverarbeitung der grafischen Elemente...
Interpretation der Musik...[8][16][24][32][40][48][56][64][72][80][88][96][104][112][120][128][136][144]
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Musik wird auf 3 oder 4 Seiten angepasst...
Systeme erstellen...Speicherzugriffsfehler

und hier ist ein auszug aus /var/log/messages

Zitat
Jun 24 09:14:32 schreibtisch  kernel: [ 1421.008792] lilypond.real[1636]: segfault at 10 ip 8007eaa0 sp bfea5000 error 4 in lilypond.real[80010000+421000]
Jun 24 09:14:58 schreibtisch kernel: [ 1446.731997] lilypond.real[1637]: segfault at 10 ip 800c1aa0 sp bfa158d0 error 4 in lilypond.real[80053000+421000]
Jun 24 09:18:45 schreibtisch kernel: [ 1674.039520] perf: interrupt took too long (2524 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
Jun 24 09:25:56 schreibtisch kernel: [ 2105.548917] lilypond.real[1708]: segfault at 10 ip 8014daa0 sp bfaf6830 error 4 in lilypond.real[800df000+421000]
Jun 24 09:33:31 schreibtisch kernel: [ 2560.491310] perf: interrupt took too long (3166 > 3155), lowering kernel.perf_event_max_sample_rate to 63000
Jun 24 09:51:57 schreibtisch kernel: [ 3665.922998] lilypond.real[2020]: segfault at 10 ip 80116aa0 sp bfc55470 error 4 in lilypond.real[800a8000+421000]

Wo kann ich dieses Problem melden, und wie kann man das lösen?

Malte

Probier bitte, ein Minimalbeispiel zu erstellen, die Dateien sind ja doch recht groß und unübersichtlich. Wenn du ein solches gefunden hast, kannst du an die bug-Mailingliste (bug-lilypond bei gnu.org) schreiben.

messingsound

Hallo Malte,

danke für die Antwort. Rondo des Horn-Solos hab ich geschafft, Allegro und Romanze gehen nicht durch.
Ein Minimalbeispiel zu kreieren, ist leider schwierig, denn wie bereits erwähnt:

Zitat von: messingsound am Samstag, 24. Juni 2017, 10:47
kleine Lilypond-Dateien kompilieren.

Ich denke, ich werde mal den Log an bug-lilypond posten.

Malte

Zitat von: messingsound am Sonntag, 25. Juni 2017, 12:20
Ein Minimalbeispiel zu kreieren, ist leider schwierig, denn wie bereits erwähnt:

Zitat von: messingsound am Samstag, 24. Juni 2017, 10:47
kleine Lilypond-Dateien kompilieren.
Naja, man kann ja mit wenig Eingabe viel Output erzeugen, z. B.\version "2.18.2"
\repeat unfold 4000 c'4
Und vielleicht tritt ja da schon das Problem auf.

messingsound


[/quote]
Naja, man kann ja mit wenig Eingabe viel Output erzeugen, z. B.\version "2.18.2"
\repeat unfold 4000 c'4
Und vielleicht tritt ja da schon das Problem auf.
[/quote]

Nein, dabei tritt das Problem nicht auf, auch wenn die Ausgabe dieses Ausdrucks 10 Seiten beträgt.

Mein kleinstes Beispiel, bei dem das Problem auftritt, beträgt 4 kB inkl. Notentext, Horn.ily aus dem genannten Projekt sogar 7 kB.
Alles Dateigrößen, die dem Kriterium des Minimalbeispiels (max. 10 Zeilen) wohl kaum entsprechen.
Ein Speicherzugriffsfehler (engl. segfault oder segmentation fault) weist auf einen Programmfehler hin, nicht auf einen Anwenderfehler. Eigentlich war ich davon ausgegangen, dass das Problem bekannt ist.

Kann das was mit dem Paket guile zu tun haben? Im install.txt der Datei lilypond-2.19.62.tar.gz steht irgendwas davon, dass guile2.0 nicht unterstützt wird.



Malte

Zitat von: messingsound am Sonntag, 25. Juni 2017, 19:23
Mein kleinstes Beispiel, bei dem das Problem auftritt, beträgt 4 kB inkl. Notentext, Horn.ily aus dem genannten Projekt sogar 7 kB.
Alles Dateigrößen, die dem Kriterium des Minimalbeispiels (max. 10 Zeilen) wohl kaum entsprechen.
Naja, dann wohl besser ein großes Beispiel als keins.
Zitat
Ein Speicherzugriffsfehler (engl. segfault oder segmentation fault) weist auf einen Programmfehler hin, nicht auf einen Anwenderfehler.
Hab nie was anderes behauptet ;)
Zitat
Eigentlich war ich davon ausgegangen, dass das Problem bekannt ist. v
Naja, wer weiß, wie oft das schon aufgetreten ist ... du könntest den issue tracker befragen, aber gut möglich, daß der Bug noch nicht gemeldet ist (falls es sich um einen handelt, siehe unten).
Zitat
Kann das was mit dem Paket guile zu tun haben? Im install.txt der Datei lilypond-2.19.62.tar.gz steht irgendwas davon, dass guile2.0 nicht unterstützt wird.
Das stimmt, momentan wird Guile 2.0 noch nicht unterstützt. Das sollte eigentlich in LilyPond 2.20 rein, aber wurde, soweit ich weiß, inzwischen auf 2.22 verschoben ... Und da der Fehler ja erst nach nem System-Update kam, könnt ich mir vorstellen, daß es daran liegt.

harm6

Zitat von: messingsound
Eigentlich war ich davon ausgegangen, dass das Problem bekannt ist.

Nein, es ist nicht bekannt.

Zitat von: messingsoundKann das was mit dem Paket guile zu tun haben? Im install.txt der Datei lilypond-2.19.62.tar.gz steht irgendwas davon, dass guile2.0 nicht unterstützt wird.

Guile-2.0 wird definitiv nicht unterstützt.
Der support für guile-2.0 wird in einem gesonderten branch des lilypond-repository entwickelt und ist immer noch hochgradig experimentell.
Falls irgendeine distro diesen branch ausliefert kann ich nur OMG von mir geben.
Welche Linux-distro hast Du eigentlich?
ZitatLinux schreibtisch 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2 (2017-06-12) i686 GNU/Linux
kann ich nur vage Debian-irgendwas zuordnen.

Hier direkt die nächste Frage: wie bist Du an LilyPond gekommen
- via distro
- selbst kompiliert aus dem repository
- via installer
?

Via installer sollte auch dann funktionieren falls Deine distro kein guile-1 mehr ausliefert.

Auch bei der Datei von mutopia: hast Du convert-ly drüberlaufen lassen? Das ist immerhin ziemlich alter code.


Gruß,
  Harm




harm6

Nachtrag:
Ich hab die Datei horn.ly aus
www.mutopiaproject.org/ftp/MozartWA/KV447/MozartHornConcerto3/MozartHornConcerto3-lys.zip
jetzt (ohne convert-ly) sowohl mit lilypond 2.18.2 als auch mit 2.19.63 sowie mit meinen experimentellen builds mit guile-2.0.14 sowie guile-2.2.2 getestet.
Nirgendwo ein segfault.

Ich bin auf Ubuntu 16.04 64-bit.

Gruß,
  Harm

messingsound

#8
Moin Harm,

Zitat von: harm6 am Sonntag, 25. Juni 2017, 20:28

Welche Linux-distro hast Du eigentlich?
ZitatLinux schreibtisch 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2 (2017-06-12) i686 GNU/Linux
kann ich nur vage Debian-irgendwas zuordnen.

Hier direkt die nächste Frage: wie bist Du an LilyPond gekommen
- via distro
- selbst kompiliert aus dem repository
- via installer
?

Ich fahr hier mit Debian 9.0 testing, "buster" i386
Paket: guile-2.0-libs Version: 2.0.13+1-4
Paket: lilypond Version: 2.18.2-7

alles per apt-get  installiert.

Zitat
Via installer sollte auch dann funktionieren falls Deine distro kein guile-1 mehr ausliefert.
Auch bei der Datei von mutopia: hast Du convert-ly drüberlaufen lassen? Das ist immerhin ziemlich alter code.

Tut's aber nicht. guile steht nicht mal in den Abhängigkeiten für lilypond drin.
Convert-ly hab ich gerade drüber laufen lassen Der Speicherzugriffsfehler bleibt.
in einem Anfall von Bastel-Wut (dabei müsste ich eigentlich Trompete üben) Hatte ich mit die Sourcen  runtergeladen, aber schon ./configure vermisste eine passende guile-Version (ich tippe auf 1.8...)

Ich denk schon daran, guile downzugraden, oder den Maintainer anzuschreiben, aber gegenwärtig ist die Situation ziemlich verkorkst.

Zitat von: harm6 am Sonntag, 25. Juni 2017, 20:45
Nachtrag:
Ich hab die Datei horn.ly aus
www.mutopiaproject.org/ftp/MozartWA/KV447/MozartHornConcerto3/MozartHornConcerto3-lys.zip
jetzt (ohne convert-ly) sowohl mit lilypond 2.18.2 als auch mit 2.19.63 sowie mit meinen experimentellen builds mit guile-2.0.14 sowie guile-2.2.2 getestet.
Nirgendwo ein segfault.

Ich bin auf Ubuntu 16.04 64-bit.

erstaunlich, eigentlich müsste das dann bei mir auch funktionieren. ist ja kein Windows  ;)

Gruß,
  Harm
[/quote]

Gruß zurück

harm6

#9
Zitat von: messingsoundPaket: lilypond Version: 2.18.2-7
alles per apt-get  installiert.
Kannst Du mal posten was in dieser Version passiert wenn Du im terminal
lilypond scheme-sandbox
eingibst und in den sich öffnenden guile-prompt
(version)
eingibst?

Für meine 2.18.2-Version sieht das dann so aus (verlasse den guile-prompt mit (exit) oder <strg d>):
Zitat~$ lilypond scheme-sandbox
GNU LilyPond 2.18.2
Processing `/home/hermann/lilypond/usr/share/lilypond/current/ly/scheme-sandbox.ly'
Parsing...
guile> (version)
"1.8.7"
guile> (exit)

Success: compilation successfully completed
D.h. lily-2.18.2 arbeitet mit guile-1.8.7
(Auf meinem system ist allerdings selbst-kompiliertes guile-2.2 installiert!)

Zitat von: harmVia installer sollte auch dann funktionieren falls Deine distro kein guile-1 mehr ausliefert.
Zitat von: messingsoundTut's aber nicht. guile steht nicht mal in den Abhängigkeiten für lilypond drin.

Hast Du es wirklich mit dem lilypond-installer gemacht?
D.h. download von
http://lilypond.org/website/unix.html
für 2.18.2, bzw
http://lilypond.org/website/development.html
für die aktuelle devel-version (momentan 2.19.62)
und dann im terminal (ich gebe den Beispielcode für den 64-bit installer der devel-version an, Du musst natürlich den Namen der für Dich passenden Datei angeben)
sh lilypond-2.19.62-1.linux-64.sh

Das sollte eigentlich funktionieren, selbst ohne guile-1

Zitat von: messingsoundin einem Anfall von Bastel-Wut (dabei müsste ich eigentlich Trompete üben) Hatte ich mit die Sourcen  runtergeladen, aber schon ./configure vermisste eine passende guile-Version (ich tippe auf 1.8...)
./configure sollte eine entsprechende Meldung geben. Aber ja, Du brauchst guile-1 in jedem Fall, um aus dem tarball selbst zu kompilieren. Wenn es das ist was Du versucht hast.

ZitatIch denk schon daran, guile downzugraden, oder den Maintainer anzuschreiben, aber gegenwärtig ist die Situation ziemlich verkorkst.

Sicherlich von Interesse:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746005
besonders:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746005#278

Wenn da was falsch gelaufen ist soltest Du den maintainer in debian auf jeden Fall verständigen.
Ansonsten übernehmen nachher alle auf debian fussenden linux-distros denselben Fehler.

Gruß,
  Harm

P.S.
Ich tendiere dazu Sachverhalte und Vorgehensweisen sehr ausführlich zu beschreiben (wenn ich die Zeit dazu habe), selbst wenn ich weiß, daß es für meinen Gesprächspartner überflüssig wäre. Immerhin werden ja möglicherweise auch Neueinsteiger dies hier lesen. Zumindest hat mir als Anfänger solche Ausführlichkeit oft gefehlt.
Ich hoffe es stört Dich nicht.


EDIT: irreführender Tippfehler korrigiert

harm6

Zitat von: harm6 am Heute um 20:45
Zitat
    Nachtrag:
    Ich hab die Datei horn.ly aus
    www.mutopiaproject.org/ftp/MozartWA/KV447/MozartHornConcerto3/MozartHornConcerto3-lys.zip
    jetzt (ohne convert-ly) sowohl mit lilypond 2.18.2 als auch mit 2.19.63 sowie mit meinen experimentellen builds mit guile-2.0.14 sowie guile-2.2.2 getestet.
    Nirgendwo ein segfault.

    Ich bin auf Ubuntu 16.04 64-bit.


Zitat von: messingsounderstaunlich, eigentlich müsste das dann bei mir auch funktionieren. ist ja kein Windows

Nein, denn in meiner LilyPond-Versionen für guile-2.0.14 sind eine Menge patches für guile-2 drin, in der Version für guile-2.2.2 noch einige, teils unveröffentlichte, zusätzlich.
Ich sehe nicht wie man 2.18.2 fit für guile-2.0 machen könnte ohne viele, viele patches einzufügen. Im Endeffekt hätte eine solche Version nicht mehr viel mit der von LilyPond veröffentlichten gemein.

Gruß,
  Harm

messingsound

Zitat von: harm6 am Sonntag, 25. Juni 2017, 23:09
Ich tendiere dazu Sachverhalte und Vorgehensweisen sehr ausführlich zu beschreiben (wenn ich die Zeit dazu habe), selbst wenn ich weiß, daß es für meinen Gesprächspartner überflüssig wäre. Immerhin werden ja möglicherweise auch Neueinsteiger dies hier lesen. Zumindest hat mir als Anfänger solche Ausführlichkeit oft gefehlt.
Ich hoffe es stört Dich nicht.

Welch ein dezenter Kommentar!  :-[ Nein es stört mich nicht. Normalerweise versuche ich, Redundanzen zu vermeiden. Hier jedoch gebe ich zu, dass das eine oder andere Wort meine Beiträge verständlicher gemacht hätte. Hätte ich gewusst welches, ich hätt's gebracht.

Zitat
Kannst Du mal posten was in dieser Version passiert wenn Du im terminal
lilypond scheme-sandbox
eingibst und in den sich öffnenden guile-prompt
(version)
eingibst?

»/usr/share/lilypond/2.18.2/ly/scheme-sandbox.ly« wird verarbeitet
Analysieren...
guile> version
#<primitive-procedure version>

Zitat von: harm6 am Sonntag, 25. Juni 2017, 23:09
Hast Du es wirklich mit dem lilypond-installer gemacht?
D.h. download von
http://lilypond.org/website/unix.html
für 2.18.2, bzw
http://lilypond.org/website/development.html
für die aktuelle devel-version (momentan 2.19.62)
und dann im terminal (ich gebe den Beispielcode für den 64-bit installer der devel-version an, Du musst natürlich den Namen der für Dich passenden Datei angeben)
sh lilypond-2.19.62-1.linux-64.sh
Das sollte eigentlich funktionieren, selbst ohne guile-1
Zitat von: messingsoundPaket: lilypond Version: 2.18.2-7
alles per apt-get  installiert.
[/quote]

ich werde gleich mal den lilipond-Installer ausprobieren, vielleicht klappt das dann.

Zitat von: harm
Sicherlich von Interesse:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746005
besonders:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746005#278

Wenn da was falsch gelaufen ist soltest Du den maintainer in debian auf jeden Fall verständigen.
Ansonsten übernehmen nachher alle auf debian fussenden linux-distros denselben Fehler.

Danke! werd ich mir gleich mal ansehen.



harm6

Zitat
»/usr/share/lilypond/2.18.2/ly/scheme-sandbox.ly« wird verarbeitet
Analysieren...
guile> version
#<primitive-procedure version>

Das ist nicht was ich meinte.
guile> version
gibt die procedure mit Namen 'version zurück.
Teste in der scheme-sandbox bitte
guile> (version)
Die Klammern sind notwendig. Durch diese Klammern wird die procedure auch ausgeführt und sollte die guile-version zurückgeben die lilypond in der benutzten Version verwendet, sofern der Aufruf in der scheme-sandbox erfolgt.

Gruß,
  Harm

messingsound

/usr/share/lilypond/2.18.2/ly/scheme-sandbox.ly« wird verarbeitet
Analysieren...
guile>  (version)
"1.8.8"
guile>

harm6

Zitat von: messingsound
/usr/share/lilypond/2.18.2/ly/scheme-sandbox.ly« wird verarbeitet
Analysieren...
guile>  (version)
"1.8.8"
guile>

Ich gehe davon aus, daß Du es mit der via apt-get von Debian erhaltenen Version gemacht hast.
Und das bedeutet, daß diese Lilypond-Version mit guile-1.8.8 arbeitet.

Version 2.18.2 hat jetzt aber schon einige Jährchen auf dem Buckel und der von Dir beschriebene segfault ist noch nie vorher aufgetaucht.
Insoweit beschleicht mich doch mehr und mehr der Verdacht, daß das Problem bei Debian liegt. Um so mehr als das Du ja berichtet hast, daß das Problem erst nach einem OS-upgrade erstmalig aufgetaucht ist.

Insoweit bitte informiere den maintainer dort.

Gruß,
  Harm