Project

General

Profile

Actions

Support Request #505

closed

ADTFS-46473 ADTF 3: Probleme mit Filenames Properties

Added by hidden about 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Customer:
ELEKTROBIT
Department:
SUPPORT
Requester's Priority:
Normal
Support Level:
3rd Level
Resolution:
Product Issue Opened

Description

Supportanfrage:

Einige Verbesserungsvorschläge oder Bugs für das Playback in ADTF 3:

Beim Umgang mit der filenames property beim playback_input.streaming_services.adtf.cid hab ich folgende Verbesserungsvorschläge:

Ich hab das ganze im ADTF 3.0.0 Beispielprojekt nachgestellt: $(ADTF_DIR)/examples/ADTF_Project.adtf_project

Item 1: Filename abgeändert auf einen nicht existierenden Filenamen, bzw. .adtfdat File existiert nicht (tritt z.B. auf, wenn man den Folder mit dem Dat-File verschiebt)

Start vom Configuration Editor:

Launch in Console: Schmiert nach kurzer Zeit ab (keine Zeit die Fenster zu lesen)
Launch via ADTF Control (Debug): Screenshots attached

Fehlermeldung sehr kryptisch. Sollte besser verständlich sein, woher der Fehler kommt.

Item 2: Ich wollte den log eigentlich als text file generieren, aber das scheint vom launcher nicht zu funktionieren
Vgle Screenshot vom Cmd_ADTF_LAUNCHER, das log file ist fast leer.
Konkret sollte man den Output, der beim Aufruf des Launchers mit Option "-console" generiert wird auch in ein ein File umleiten können. Die -log-file option leistet das leider nicht.

Item 3: Unterstützung von relativen Pfaden in der Filename Property des playback_input.streaming_services.adtf.cid

Da würde ich mir mehr Unterstützung im Configuration Editor wünschen. Man kann zwar nachträglich etwa $(ADTF_GRAPH_DIR) in das kleine Textfensterchen reinpfrimeln. Das ist aber etwas mühsam. lieber macht man das im property file.
Ich würde vorschlagen, dass man defaultmäßig auch den Filename relativ zum .adtfproperties File speichern kann.

Item4: Die Funktion vom Kontextmenü "Create pins from .dat file" sollte auch für .dat files funktionieren, nicht nur für .adtfdat files.

Best regards - Beste Grüße
Jochen Messner
EB Assist ADTF Support-Team

Lösung:

Erstellung bzw. Ergänzung mehrerer Produkttickets:

Item1 Item3 Item4

Files

ADTF_Control.PNG (73.6 KB) ADTF_Control.PNG hidden, 2017-03-31 15:15
ADTF_XSystem.PNG (78.8 KB) ADTF_XSystem.PNG hidden, 2017-03-31 15:15
Cmd_ADTF_LAUNCHER.PNG (99.4 KB) Cmd_ADTF_LAUNCHER.PNG hidden, 2017-03-31 15:15
log3.txt (15 KB) log3.txt hidden, 2017-04-04 15:00
NoOutputWithoutRedirection.PNG (121 KB) NoOutputWithoutRedirection.PNG hidden, 2017-04-04 15:00
CygwinOut.PNG (215 KB) CygwinOut.PNG hidden, 2017-04-04 15:00
ConsoleLog.PNG (47.8 KB) ConsoleLog.PNG hidden, 2017-04-04 15:00
MissingOutputWhenADTFCrashed.PNG (197 KB) MissingOutputWhenADTFCrashed.PNG hidden, 2017-04-04 15:00
CreatePinsFromDat - Copy.7z (6.16 KB) CreatePinsFromDat - Copy.7z hidden, 2017-04-04 15:00
Option-consoleOnCygwin.PNG (254 KB) Option-consoleOnCygwin.PNG hidden, 2017-04-12 12:00
-console.png (110 KB) -console.png hidden, 2017-04-12 12:51
Actions #1

Updated by hidden about 7 years ago

  • Project changed from Public Support to 7
  • Customer set to ELEKTROBIT
  • Department set to SUPPORT
  • Affected Products ADTF 3.0.0 added
  • Platform Windows 7 64bit added
Actions #2

Updated by hidden about 7 years ago

  • Status changed from New to Customer Feedback Required
  • Topic set to ADTF::CE
  • Resolution set to Product Issue Opened
  • Product Issue Numbers set to http://km-aev.in.audi.vwg/redmine/issues/36648; http://km-aev.in.audi.vwg/redmine/issues/38375
  • Support Level changed from 2nd Level to 3rd Level
Item 1:
  • Ja das werden wir noch überarbeiten, im Augenblick wird eben nur, wie man auch auf deinem Screenshot sehen kann, ERROR_FILE_NOT_FOUND (-23) zurückgegeben
  • Die Äuflösung des Pfades sollte am besten mit in #36648 gelöst werden, eine Erweiterung der Fehlermeldung an einer anderen Stelle.

Item 2: Ich wollte den log eigentlich als text file generieren, aber das scheint vom launcher nicht zu funktionieren
Vgle Screenshot vom Cmd_ADTF_LAUNCHER, das log file ist fast leer.
Konkret sollte man den Output, der beim Aufruf des Launchers mit Option "-console" generiert wird auch in ein ein File umleiten können. Die -log-file option leistet das leider nicht.

Hier hat sich ein Fehler bei deinem Aufruf eingeschlichen:
  • Du verwendest > log2.txt 2>&1 um stdout und stderr in ein File zu schreiben suchst dann aber in einer txt File names "log.txt" nach dem Output.
    • Die Ausgabe von stdout und stderr in einem File funktioniert ohne Probleme
  • -console sollte nicht verwendet werden, wenn der output gepiped wird, siehe help des adtf_launchers
Item 3:
  • Bereits im Ticket #36648 definiert
Item 4:
  • Ist bereits im CE Userbility Ticket aufgenommen (Feature Bundle 2017a) #38375
    • Sobald das "adtf2_support.adtfplugin im System Editor hinzugefügt wurde, sind sowohl .adtfdat als auch .dat files verwendbar
Actions #4

Updated by hidden about 7 years ago

Anwender schrieb

Soweit ich das sehe, arbeitet ihr schon an item 1 und item 3.

Für item 2, danke für den Hinweis. Blöder Verschreiber. Das Verhalten ist aber auch sehr verwirrend. Offenbar wurde im Launcher die Standard-Windows-Funktionalität für die Redirection gehackt:
  • Per Standard-Windows-Funktionalität lässt sich die Ausgabe eines Programms in eine File umleiten mit ">"
In ADTF 3 wurde das gehackt (?)
  • Ohne Redirect auf der Kommandozeile wird kein Output generiert
  • Mit Redirect wird eine Ausgabe in das File geschrieben.

Vgle Attachments log3.txt

Mein Verbesserungsvorschlag wäre, hier wieder die Standard-Windows-Funktionalität zu unterstützen, d.h. eine Möglichkeit vorzusehen, die Ausgabe des launchers auf stdout zu bekommen, wie z.B. in ADTF 2 die Option -stdout.
Ein Workaround der das aktuell leistet wäre den Launcher in einer cygwin-shell zu starten, dann bekommt man die Ausgabe auf stdout

Dann zum Inhalt der Ausgabe:
Offenbar wird die Ausgabe in die Log-Datei beendet sobald der Console-Log gestartet ist und erst bei regulärem Beenden von des Launchers ergänzt.
Man sieht das im Beispiel Screenshot mit Cygwin: Die Log-Ausgabe auf stdout hört auf mitten in der Initialisierung des xsystem services auf

Die Ausgabe wird allerdings dann vervollständigt, wenn der Launcher regulär beendet wird. Dann bekommt man auch die Log-Messages vom "Console Log" im stdout. Irgendwo findet also ein Buffering statt. Problematisch ist hier, dass man die Infos aus dem Buffer nicht sieht, wenn ADTF abstürzt. Man hat also keine Möglichkeiten sich die letzten Ausgabe vor einem crash in ein text file umzuleiten.

Workaround wäre hier, den Launcher mit Option -console zu starten und den inhalt rauszukopieren.

Auch müsste man noch schauen, ob Ausgaben über printf bzw std::cout und LOG noch in der richtigen Reihenfolge auf stdout herauskommen.

Wie gesagt nur ein Vorschlag, hier die gleiche Funktionalität wie -stdout beim adtf2 launcher zu unterstützen.

Zu Item 4: Hat etwas gedauert bis ich die eigentliche Ursache gefunden habe. Offenbar funktioniert das mit dem adtf2_suport.service nicht mehr sobald ein Blank im Projektpfad vorkommt. Anbei ein entsprechendes Projekt (CreatePinsFromDat - Copy). Ich denke das sollte gefixt werden.

Best regards - Beste Grüße

Jochen Messner

EB Assist ADTF Support-Team

Actions #5

Updated by hidden about 7 years ago

  • Status changed from Customer Feedback Required to In Progress
Actions #6

Updated by hidden about 7 years ago

  • Status changed from In Progress to Customer Feedback Required
  • Product Issue Numbers changed from http://km-aev.in.audi.vwg/redmine/issues/36648; http://km-aev.in.audi.vwg/redmine/issues/38375 to http://km-aev.in.audi.vwg/redmine/issues/36648; http://km-aev.in.audi.vwg/redmine/issues/38375; http://km-aev.in.audi.vwg/redmine/issues/39520

Hallo Jochen,

ich glaube es ist so gedacht, das nur wenn man die Option -console verwendet man einen Log in der Kommandozeile ausgegeben bekommt.

Offenbar wird die Ausgabe in die Log-Datei beendet sobald der Console-Log gestartet ist und erst bei regulärem Beenden von des Launchers ergänzt.
Die Ausgabe wird allerdings dann vervollständigt, wenn der Launcher regulär beendet wird. Dann bekommt man auch die Log-Messages vom "Console Log" im stdout. Irgendwo findet also ein Buffering statt. Problematisch ist hier, dass man die Infos aus dem Buffer nicht sieht, wenn ADTF abstürzt. Man hat also keine Möglichkeiten sich die letzten Ausgabe vor einem crash in ein text file umzuleiten.

Es stimmt das die Log-Ausgabe in eine Datei anscheinend irgenwie zwischengepuffert wird bzw. erst nach dem Beenden (egal ob normal oder durch exception) fertig geschrieben wird. Auf jedenfall wird auch im Fehlerfall ein komplettes Log erstellt. Das habe ich in mehreren Versuchen nachstellen können.

Zu Item 4: Hat etwas gedauert bis ich die eigentliche Ursache gefunden habe. Offenbar funktioniert das mit dem adtf2_support.service nicht mehr sobald ein Blank im Projektpfad vorkommt. Anbei ein entsprechendes Projekt (CreatePinsFromDat - Copy). Ich denke das sollte gefixt werden.

Dieser Fehlerfall ist unabhängig davon ob der adtf2_suport.service verwendet wird oder nicht. Wenn sich im Projektpfad (Ordner in dem die *.adtfproject liegt) ein Whitespace befindet, werden über "create pins from dat file" keine Pins erstellt.
Im Zuge dessen ist mir auch noch aufgefallen das folgende Sonderzeichen im Projektpfad Probleme verursachen:
  • D:\__support\#505\CreatePinsFromDatCopy
    • Fehlermeldung: File not found: D:\__support\%23505\CreatePinsFromDatCopy ...
  • D:\__support\%505\CreatePinsFromDatCopy
    • Fehlermeldung: File not found: D:\__support\%25505\CreatePinsFromDatCopy ...
  • ö, ä, ü
    • Fehlermeldung: File not found: D:\__support\ö25505\CreatePinsFromDatCopy ... usw.
  • §
    • Fehlermeldung: File not found: D:\__support\§505\CreatePinsFromDatCopy ...
  • ß
    • Fehlermeldung: File not found: D:\__support\ß505\CreatePinsFromDatCopy ...

Dazu habe ich ein Bug Ticket #39520 angelegt.
Damit sollte dieses Support Ticket abgeschlossen sein. Hast du noch Fragen zum Ticket?
Ansonsten würde ich das Ticket gerne abschließen.

Actions #7

Updated by hidden about 7 years ago

Zeitraum für Feedback bis zum 12.04.2017 eingeräumt.

Actions #8

Updated by hidden about 7 years ago

Hi Stephan,

Dein Kommentar hat es nicht in unser Ticketsystem geschafft, aber ich hab ihn bei Euch gefunden.

ich glaube es ist so gedacht, das nur wenn man die Option -console verwendet man einen Log in der Kommandozeile ausgegeben bekommt.

A: Jain: man bekommt es auf der Kommandozeile angezeigt allerdings nur wenn man den Launcher aus eine cmd.exe startet. Der Befehl funktioniert nicht in einer Shell wie Cygwin. Im Batchscript wird ein separates Fenster aufgemacht.

Es stimmt das die Log-Ausgabe in eine Datei anscheinend irgenwie zwischengepuffert wird bzw. erst nach dem Beenden (egal ob normal oder durch exception) fertig geschrieben wird. Auf jedenfall wird auch im Fehlerfall ein komplettes Log erstellt. Das habe ich in mehreren Versuchen nachstellen können.

A: Wie du an meinem Screenshot siehst hängt das dann offenbar von der Art des Absturzes ab.

(Finde das handling mit stdout auch weiterhin verbesserungswürdig.)
Hast Du auch mal ein printf in einem Filter eingebaut, ob die Ausgabe noch an der richtigen Stelle im Log erscheint?
(Kann man natürlich auch sagen, dass man das nicht unterstützen möchte)

Zu Item 4: Hat etwas gedauert bis ich die eigentliche Ursache gefunden habe. Offenbar funktioniert das mit dem adtf2_support.service nicht mehr sobald ein Blank im Projektpfad vorkommt. Anbei ein entsprechendes Projekt (CreatePinsFromDat - Copy). Ich denke das sollte gefixt werden.
Dieser Fehlerfall ist unabhängig davon ob der adtf2_suport.service verwendet wird oder nicht. Wenn sich im Projektpfad (Ordner in dem die *.adtfproject liegt) ein Whitespace befindet, werden über "create pins from dat file" keine Pins erstellt.
Im Zuge dessen ist mir auch noch aufgefallen das folgende Sonderzeichen im Projektpfad Probleme verursachen:

Gute Beobachtung, ich dachte ich hätte das mit einem .adtfdat probiert und es hätte funktioniert, kann aber auch ein anderes Projekt gewesen sein.
Wie hast Du die Fehlermeldungen sehen können? Bei mir kommt da nur kurz ein Command-Fenster hoch, aber das ist zu schnell weg, um da irgendetwas zu sehen.
Fehlermeldung: File not found: D:\__support\%25505\CreatePinsFromDatCopy ...?

Eine Ergänzung zu Bug-Ticket #39520:

Bitte beschränkt Euch da nicht auf deutsche Sonderzeichen und Umlaute. Wir vertreiben ADTF weltweit (besonders Japaner und Chinesen haben oft viele lustige Symbole im Pfad). Es müsste doch irgendeine Möglichkeit geben, Pfade so zu verwenden, dass dies auf jeder Locale von Windows läuft?

Best regards - Beste Grüße
Jochen Messner
EB Assist ADTF Support-Team

Actions #9

Updated by hidden about 7 years ago

Hallo Jochen,

ich glaube es ist so gedacht, das nur wenn man die Option -console verwendet man einen Log in der Kommandozeile ausgegeben bekommt.

A: Jain: man bekommt es auf der Kommandozeile angezeigt allerdings nur wenn man den Launcher aus eine cmd.exe startet. Der Befehl funktioniert nicht in einer Shell wie Cygwin. Im Batchscript wird ein separates Fenster aufgemacht.

ich habe die Option -console auf cygwin verwendet und sie funktioniert so wie sie soll, der komplette output wird im selben Consolenfenster ausgegeben.

Es stimmt das die Log-Ausgabe in eine Datei anscheinend irgenwie zwischengepuffert wird bzw. erst nach dem Beenden (egal ob normal oder durch exception) fertig geschrieben wird. Auf jedenfall wird auch im Fehlerfall ein komplettes Log erstellt. Das habe ich in mehreren Versuchen nachstellen können.

A: Wie du an meinem Screenshot siehst hängt das dann offenbar von der Art des Absturzes ab.
(Finde das handling mit stdout auch weiterhin verbesserungswürdig.)
Hast Du auch mal ein printf in einem Filter eingebaut, ob die Ausgabe noch an der richtigen Stelle im Log erscheint?
(Kann man natürlich auch sagen, dass man das nicht unterstützen möchte)

Ich habe verschiedenste Möglichkeiten (Beenden Normal, durch Absturz usw.) durchprobiert, jedesmal wurde bei mir zuletzt ein vollständiges Log erstellt.
Manchmal musste man dafür noch die Kommandozeile schließen oder verschieben bzw. anklicken.

Ich habe noch kein printf in einen Filter eingebaut, aber sollte damit etwas sicher im Log landet nicht z.B. LOG_WARNING , LOG_INFO verwendet werden?
Ob man das nicht unterstützen möchte weiß ich nicht.

Gute Beobachtung, ich dachte ich hätte das mit einem .adtfdat probiert und es hätte funktioniert, kann aber auch ein anderes Projekt gewesen sein.
Wie hast Du die Fehlermeldungen sehen können? Bei mir kommt da nur kurz ein Command-Fenster hoch, aber das ist zu schnell weg, um da irgendetwas zu sehen.
Fehlermeldung: File not found: D:\__support\%25505\CreatePinsFromDatCopy ...?

Ich konnte die Fehlermeldung selbst nicht sehen, der Fehler war bereits bei uns bekannt bzw. nachgestellt.

Eine Ergänzung zu Bug-Ticket #39520:
Bitte beschränkt Euch da nicht auf deutsche Sonderzeichen und Umlaute. Wir vertreiben ADTF weltweit (besonders Japaner und Chinesen haben oft viele lustige Symbole im Pfad). Es müsste doch irgendeine Möglichkeit geben, Pfade so zu verwenden, dass dies auf jeder Locale von Windows läuft?

Das habe ich im Ticket ergänzt.

Sind damit alle Fragen beantwortet und wir können das Ticket abschließen?
So wie es für mich jetzt aussieht gibt es bereits Produkttickets die die Fehlerfälle abdecken.

Actions #10

Updated by hidden about 7 years ago

Hallo Stephan,

ich habe die Option -console auf cygwin verwendet und sie funktioniert so wie sie soll, der komplette output wird im selben Consolenfenster ausgegeben.

Seltsam: mit –console bekomme ich nur noch die Qt warnings. (Vgle Option-consoleOnCygwin.PNG).

Ich habe verschiedenste Möglichkeiten (Beenden Normal, durch Absturz usw.) durchprobiert, jedesmal wurde bei mir zuletzt ein vollständiges Log erstellt. Manchmal musste man dafür noch die Kommandozeile schließen oder verschieben bzw. anklicken.

Hm, hat wie illustriert bei mir nicht funktioniert. Ich seh da die Möglichkeit, dass man kein gescheites Logging hat, wenn Fehler beim Kunden auftreten. Aber ist erst mal nur hypothetisch. Wenn die beiden Probleme bei Dir nicht reproduzierbar sind, dann würd ich es erst mal lassen.

Ich habe noch kein printf in einen Filter eingebaut, aber sollte damit etwas sicher im Log landet nicht z.B. LOG_WARNING , LOG_INFO verwendet werden?

Ob man das nicht unterstützen möchte weiß ich nicht.

Mit printf bekommt man die Ausgabe ganz sicher auf stdout. Mit LOG_WARNING, LOG_INFO, etc. offenbar nicht so. Wir hatten schon printf (bzw. Ausgabe auf cout) Befehle eingesetzt, um Strukturen/Verarbeitungsinfos schnell zu printen (auf stdout zu bekommen), das ADTF 2 logging war ja viel zu langsam dafür (und nicht für große Datenmengen geeignet). Da war es dann immer hilfreich, dass der LOG_INFO etc. output Befehle sich auch auf stdout umleiten liesen (mit –stdout) und dann synchron mit dem anderen output angezeigt wurde. Das funktioniert bei ADTF 3 vermutlich nicht mehr.
Aber ist jetzt auch kein großes Ding, da einen Workaround zu bauen. Insofern ist das nicht wichtig.

Danke für die Ergänzung bei Bug-Ticket #39520

Dann kannst Du das Ticket zumachen.

Best regards - Beste Grüße
Jochen Messner
EB Assist ADTF Support-Team

Actions #11

Updated by hidden about 7 years ago

  • File Option-consoleOnCygwin.PNG added
Actions #12

Updated by hidden about 7 years ago

  • File deleted (Option-consoleOnCygwin.PNG)
Actions #13

Updated by hidden about 7 years ago

Hallo Jochen,

hier meine Ausgabe zum Vergleich.

Ich habe die Option -console auf cygwin verwendet und sie funktioniert so wie sie soll, der komplette output wird im selben Consolenfenster ausgegeben.

Seltsam: mit –console bekomme ich nur noch die Qt warnings. (Vgle Option-consoleOnCygwin.PNG).

Falls Probleme in Zukunft im Bezug darauf & auf die allgemeine Ausgabe in die Console auftauchen, schauen wir uns das noch einmal genauer an.


@Flo, Ticket kann geschlossen werden.

Actions #14

Updated by hidden about 7 years ago

  • Status changed from To Be Closed to Closed
Actions #16

Updated by hidden over 6 years ago

  • Project changed from 7 to Public Support
  • Private changed from Yes to No
Actions

Also available in: Atom PDF