[Allegro] Verhaspelungen in Schleife eines find-Befehls wegen

Anando Eger a.eger at aneg-dv.de
Mo Feb 13 10:42:11 CET 2012


Hallo Herr Allers,

ich kenne ähnliche Probleme auf Kunden-Rechnern; sie treten auf, wenn 
a99 in einer WoW64-Umgebung läuft und die temporären Dateien auf einem 
Netzwerklaufwerk liegen.

Unter diesen Bedingungen scheinen sich Dateizugriffe "zu überholen".
Besonders schlimm wird es, wenn auf solchen Stationen a99 mehrfach
gleichzeitig verwendet wird.

Mit Ihrer Testdatei kann ich hier folgendes reproduzieren:

Demo-Datenbank auf lokalem Laufwerk:
====================================
keine sichtbaren Fehler

Datenbank auf Netzwerklaufwerk, temp-Dateien auch dort:
========================================================
ohne sleep: a99 - Anzeige friert nach einigen zig Durchläufen ein,
(reproduzierbar dann, wenn man mit der Maus das a99-Fenster zu bewegen 
versucht), das Programm kommt aber zum Ende und meldet dann "Fertig" mit 
Anzeige der 1000 Durchläufe im Anzeigefeld.

mit sleep 100: das gleiche

Ein Dateizugriffsfehler tritt hier in meiner Netzwerkumgebung nicht
auf, nur ein Einfrieren der Anzeige bis zum Ende des Flex-Programmes.

Die Bedingungen noch einmal zusammengefasst:

- getestete a99-Versionen: V31.10, V31.12, V32.0.
- Netzwerk-Server: Linux mit SAMBA 3.x (Buffalo Terastation II Pro)
- Netzwerkgeschwindigkeit 1 GBit/s mit Switch Netgear JGS515
- Arbeitsplatz: CELSIUS R640 (2xXEON mit 8 GB RAM, Win 7 Ultimate x64, 
  SMB2 aus, Oplocks aus, Netzwerk-File-Caching aus)

Viele Grüße
Anando Eger

---------------------------------------------------------------------
Anando Eger Datenverarbeitung
Herr Dipl.-Ing. Anando Eger
Gustav-Voigt-Str. 24
01156 Dresden
Tel.: +49 (0)351 454 1236  http://www.aneg-dv.de
Fax: +49 (0)351 454 1238  mailto:a.eger at aneg-dv.de
---------------------------------------------------------------------


On 11 Feb 2012 at 17:01, Heinrich Allers wrote:

> Hallo allerseits!
> 
> Ich habe es endlich geschafft, ein in sinnvollem Kontext auftretendes Phänomen so zu reduzieren, daß 
> der FLEX-Ablauf zwar unsinnig erscheint, aber dafür auf der Demo-Datenbank reproduzierbar ist:
> 
> Folgende FLEX-Datei
> 
> expo f xyz.txt\var "0"\=
> :anfang
> +1\var Z\if >1000 jump ende
> var #dts " " Z\sho IV
> wri #dts " " Z n
> find |1 hei?\if g0 close res
>      sleep 100   // 1/10 Sekunde ausruhen!
> jump anfang
> :ende\close x
> mes Fertig
> 
> führt stets bei mir zu einem a99-Zusammenbruch, und zwar nach soundsoviel Schleifendurchläufen; dabei 
> war "soundsoviel" keine Konstante, lag aber immer in diesem Bereich:
> 50 < "soundsoviel" <100
> (was sowohl im Anzeigefenster als auch in der im Arbeitsverzeichnis mitgeschriebenen Datei x-aus.txt zu 
> sehen ist).
> 
> Der Abbruch war stets mit folgender Windows-System-Fehlermeldung verbunden:
> 
> Dateifehler
> Datei C:\DOKUME~\...\LOKALE~\Temp\cat._3 nicht zugänglich
> 
> Schließlich noch diese Beobachtungen: Wenn man den find-Befehl desaktiviert, erfolgt der 1000-fache 
> Schleifendurchlauf blitzschnell und fehlerfrei. Das tut er auch dann, wenn man mit dem find-Befehl auf 
> einen Indexeintrag zielen läßt, der nicht existiert, etwa mit 'find |1 fffff?'.
> 
> ###
> 
> Ausgehend von der Vermutung, daß mein Rechner vielleicht zu schnell prozessiert, habe ich jedem 
> Schleifendurchlauf eine zehntel Sekunde Zeit gegeben (also die Zeile 'sleep 100 ...' aktiviert): dann laufen 
> die 1000 Schleifenabläufe tatsächlich reibungslos durch.
> 
> Beim Versuch, einem Schleifendurchlauf statt 100 nur 30 Millisekunden zuzubilligen ('sleep 30 ...'), gab's 
> noch eine Variante des Problems: die Sache lief zwar auch fein bis zum Ende durch, aber irgendwann, 
> nach mehr als 100 Durchläufen, versagte schicht der Befehl 'var #dts " " Z\sho IV' seine Dienste, man 
> konnte das Geschehen also nicht mehr visuell verfolgen.
> 
> ###
> 
> Irgendetwas stimmt da also nicht! Zu flinker Prozessor? Überlauf eines Speicherbereiches? Oder - so 
> etwas soll ja auch vorkommen - Fehler in meiner FLEX-Programmierung?
> 
> Hilfreich wäre natürlich auch, wenn vielleicht eine(r) der Kolleg(inn)en das von mir erlebte Fehlverhalten 
> reproduzieren könnte - oder umgekehrt: wenn der Reproduktionsversuch scheitert und dort alles fehlerfrei 
> nach Plan läuft.
> 
> 
> Mit besten Grüßen von
> 
> Heinrich Allers
> 
> allers at t-online.de * http://www.h-allers.de
> Netztagebuch: http://heinrich-erlo-ger.blogspot.com/
> Bitácora: http://heinrich-erlo-spa.blogspot.com/
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sun250.biblio.etc.tu-bs.de/mailman/listinfo/allegro





Mehr Informationen über die Mailingliste Allegro