Samstag, 10. Januar 2015

Ubuntu 14.10 freezing frequently - Stuck on render ring


Recently I built a new PC based on a proposal in the CT journal 1/15.

The proposal contains well designed hardware components. I slightly modified  it, running it with a 256 GB SSD and 8 GB Ram. I use the built-in graphic of the celeron CPU.

Although it's just a 34 eur celeron dual core it's fast, silent and I am quite happy with it.

BUT: Recently I noticed, that there are frequent hangs. The desktop was freezing frequently (no mouse move, no keyboard input) for 2-5 seconds. This happened especially when working with firefox, scrolling or having google mail open.

Dmesg showed the following:


Jan 10 11:28:17 speedy kernel: [ 531.220050] [drm] stuck on render ring
Jan 10 11:28:17 speedy kernel: [ 531.220824] [drm] GPU HANG: ecode 0:0x87d3bffa, in Xorg [1178], reason: Ring hung, action: reset
Jan 10 11:28:17 speedy kernel: [ 531.220825] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
Jan 10 11:28:17 speedy kernel: [ 531.220826] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
Jan 10 11:28:17 speedy kernel: [ 531.220826] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
Jan 10 11:28:17 speedy kernel: [ 531.220827] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
Jan 10 11:28:17 speedy kernel: [ 531.220828] [drm] GPU crash dump saved to /sys/class/drm/card0/error
Jan 10 11:28:19 speedy kernel: [ 533.221743] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off

Seems like something related to the intel 915 graphics driver crashed and was restarted...

[Funny side remark: the crash dump had a size of 0, but anyway I could open and read it... Copy it to another location and finally you have a size > 0. ]

So I started digging the internet, with the result that there are plenty of similar bug reports. This ubuntu bug report seemed to be a good point to start. It was closed (obviously a similar issue was fixed already in 14.04, june 2014) but re-opened. No big activity in it, but it lead me to  https://bugs.freedesktop.org/show_bug.cgi?id=83677. It has a lot of duplicates, and the description matched my problem.

After some more time I figured out that - thanks to those guys - a kernel fix was submitted - brand new, on 16-Dec-14 (today it's the 10-Jan-15).

As I have now clue about applying a kernel patch (and the dropbox links there were already dead anyway), I searched kernel.org's git commit messages.

It turned out, that this fix found its way to the official kernel sources. Not included in the latest stable yet (3.18.2 as of today) but in the version 3.19 RC 3:


As I was not willing to wait 2 or 3 months until this will get a stable release, I decided to give it a try and to install the 3.19 RC3 kernel.

This was easier than expected. Just follow this howto. Now I'm running: 

user@system:~$ uname -r
3.19.0-031900rc3-generic


So far: No freezes any more. The message is gone. Thanks to Chris Wilson and all the supporters who provided this fix.




Mittwoch, 5. Juni 2013

Ubuntu WLAN ipw2200 auf hp nc6220

Hatte grade das Problem, dass ums verrecken mein WLAN nicht funktionieren wollte.

dmesg |grep ipw brachte folgendes:

[  755.227381] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[  755.227388] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[  755.227583] ipw2200 0000:02:04.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[  755.227622] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
[  755.375649] ipw2200: Radio Frequency Kill Switch is On:
[  755.379099] ipw2200: Detected geography ZZR (14 802.11bg channels, 0 802.11a channels)
[  821.276111] ipw2200: Failed to send TX_POWER: Command timed out.
[  829.508096] ipw2200: Failed to send POWER_MODE: Command timed out.
[  859.412101] ipw2200: Failed to send TX_POWER: Command timed out.
[  865.580104] ipw2200: Failed to send TX_POWER: Command timed out.
[  876.776115] ipw2200: Failed to send TX_POWER: Command timed out.

die entscheidene Zeile in meinem Fall ist die rote.

Das bedeutet dass entweder ein Hard oder Softswitch gerade die Karte deaktiviert. Hardswitch auf meinem Laptop war aber an (leuchtet blau).

Lösung: Das nette programm rfkill hilft hier:

sudo rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: yes
    Hard blocked: no
2: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: phy1: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes
10: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

Mittels

"sudo rfkill unblock 0" konnte ich sie wieder zum Leben erwecken. Danach standen sofort ALLE (hard + softblocked) auf "no".

 Ich frage mich nur welche Aktion die Karte deaktiviert hat...





Mittwoch, 5. September 2012

Kommentieren...

Über Kommentierung von SourceCode kann man ja trefflich streiten. Ich persönlich bin der Meinung dass es sinnvolle Kommentare gibt (da weiche ich schon zu den Hardlinern ab, die der Meinung sind Code ist Code ist Selbsterklärend). Kommentare sollten dann platziert werden, wenn beim Implementieren etwas Hirnschmalz gefordert war - oder wenn die Gefahr hoch ist, dass man es in ein einem halben Jahr vergessen hat um was es im einzelnen ging. 

Beispiel: Annahmen oder Voraussetzungen: ein Algorithmus der voraussetzt, dass eine Liste aus einem DB ResultSet bereits sortiert und gefiltert vorliegt - was ggf durch ein DB Statement schon passiert, ist durchaus einen Kommentar wert. 

Getter und Setter *seufz* müssen nicht kommentiert werden.

Hier mal ein Real World Beispiele

// write HistorieLauf
writeHistorieLauf();

oder
// init Batchlauf record
initBatchlauf();

oder


commit(); // commit work



Sind jetzt nicht gerade Kommentare die das Verständnis fördern.


Mein persönlicher Favorit:

// Hallo Co-Entwickler! Dieser
// Code mag umständlich sein,
// dient aber mir zum fachlichen
// Verständnis! Bitte so
// lassen...

Montag, 18. Juni 2012


OMG, ich habe grade einen Alptraum aus dem mich keiner weckt:


  
Bei einer Software eines großen magenta Telekommunikationsanbieter, die bei einem großen Stuttgarter Automobilkonzern im 21 Jahrhundert produktiv eingesetzt wird, habe ich ein Musterbeispiel für schlechtes DB Design gesehen. (Sollte ein Student sowas in irgendeiner DB Klausur abgeben, wird er sofort exmatrikuliert mit Empfehlung für die Baumschule).

  
Es geht um Dokumente die mehrsprachig in einer DB abgelegt werden: Titel, Name, Dateigröße, Abschnitt (=logische Gruppierung), Abschnittname etc.
  • Dokumente haben pro Sprache eine Bezeichnung und einen Dateinamen.
  • Dokumente haben eine Größe
  • Dokumente haben ein Erstellungsdatum
  • Dokumente können gelöscht sein, aber müssen in der DB bleiben
  • Es gibt verschiednene Abschnitte (aka Module)
  • Dokumente werden Abschnitten zugeordnet
  • Module haben pro Sprache genau eine Bezeichnung.

Das "Design" verstößt schon gegen die 1NF (!!!) und sieht so aus: Es wird alles in eine Tabelle geklatscht.

ID,  INTEGER
LANGUAGE,  CHAR
MODULID, INTEGER
DOC_BEZEICHNUNG, VARCHAR
DOC_FILENAME, VARCHAR
DOC_TYPE, CHAR
DOC_DATE, DATE
DOC_SIZE, CHAR
MODUL_BEZEICHNUNG, VARCHAR
GELOESCHT, CHAR
DATA, BLOB
Leute das macht jeder Schüler besser!!

Der absolute Schenkelklopfer, ist die DOC_SIZE - schaut euch mal den Datentyp an - muahaha - als CHAR. Und es kommt noch besser, der Inhalt sieht z.B. so aus "884 kB", die haben tatsächlich auch noch die Einheit mit in der gleichen Zelle abgelegt *popcornhol*. 1NF verletzt, dass muss man erstmal hinkriegen.

Ach ja 2NF ist natürlich auch gleich verletzt, Schlüssel der Tabelle ist nämlich ID + Sprache. Modulname + Bezeichnung werden redundant gehalten *gnihihii*.
 
Bin mal weg, Kotztüten sins alle...

Sonntag, 15. April 2012

Jmockit und Jacoco

Ich habe mir neulich mal JMockit genauer angeschaut. Jmockit erleichtert es SEHR Mockobjekte zu schreiben um die Interaktion zwischen Objekten zu testen.

Vorteile: Strikte Trennung von Code under Test vom Testcode und eine wahnsinns Flexibilität. Man muss die zu testenden Klassen nicht anpassen und schafft keinerlei Abhängigkeit! JMockit leitet die Calls auf getestete Klassen mittels Bytecodeinstrumentation um, und mockt diese. Man kann relativ elegant beliebige Klassen (auch nur teilweise) mocken und deren Rückgabewerte definieren.

Jetzt hatten wir hier ein Problem, weil Jacoco eingesetzt wird um die Test-Coverage zu ermitteln - also zwei Programme die den Bytecode instrumentieren. Mein Bugreport (zuerst bei Jmockit eingekippt) wurde mittlerweile sogar von Eclemma/Jacoco behoben.

Donnerstag, 25. August 2011

Welche Firma denkt sich da hier aus?

cast(null as varchar(256))

Richtig. InkompetenteBlödMänner. Bei DB2 muss alles streng typisiert sein, auch NULL. Und nein, es reicht nicht den null nur nach varchar zu casten (z.b. wenn man mit union arbeitet), man muss auch noch die gleiche LÄNGE des Datentyps angeben!!!

Freitag, 24. Juni 2011

Office Jet 6110 Scannerglas putzen

Seit kurzem hat unser OfficeJet 6110 das Problem, dass der Scanner beim anschalten rattert, als ob die Plastikzahnräder durchdrehen weil der Schlitten gegen das (Drucker)Ende fährt und durchdreht. Hat schleichend angefangen und wurde immer schlimmer, zuletzt war er nicht mehr bedienbar.

Das Problem ist simpel: Unter dem Druckerglas (nicht sichtbar von oben) ist ein Codestreifen, angebracht der dem Scanner sagt, wo das Ende ist. Ist dieser verschmutzt (es reicht wenig!) dann findet der Scannerschlitten das Ende nicht mehr.

Im Netz gibt es haufenweise Anleitungen dazu, wie man die Scaneinheit abmontiert. Allerdings ohne Bild und oft machen zwei Plastiknasen Probleme.

Ich hab mal ein paar Fotos geschossen, damit sollte es machbar sein.
  • Alle Torx Schrauben auf der Obserseite lösen
  • Kleines Scannerglas und Rahmen entfernen
  • Bedienfeld entfernen (von unten vorsichtig die Abdeckung abziehen)
  • Das darunterliegenede Panel durch lösen der Arretierung nach links schieben und nach oben abnehmen:



  • Das Panel vom Plastikband trennen (einfach abziehen)



  • Nun kann man die Scaneinheit von hinten (mitsamt Deckel) anheben, vorne blockieren allerdings noch zwei Plastiknasen. Diese zum lösen (rot markiert) nach vorne ziehen:





  • Glasunterseite mit Fensterreiniger putzen, es war kaum sichtbarer Schmutz vorhanden, aber offensichtlich hat es gereicht um den Scanner zu beinträchtigen. Der Codestreifen ist das schwarzweiße Ding.



  • Zusammenbauen in umgekehrter Reihenfolge :)


Montag, 7. März 2011

Ant Bash Vervollständigung - automatic bash completion

Wer häufig mit ant auf der Kommandozeile arbeitet (cygwin oder Linux/Unix) will vielleicht nicht ständig mittels "ant -p" nachsehen wollen wie die build targets heißen und diese von Hand eintippen.

Ant liefert schon von Haus aus ein Perl Script für die autocomplete Funktion der Unix Shells. Es liegt im "ANT_HOME/bin/" und muss nur noch mittels

complete -C /complete-ant-cmd.pl ant

registriert werden.

Beim drücken von TAB kann ant dann automatisch alle targets anzeigen / vervollständigen.



Dienstag, 30. November 2010

Oracle Support - zumindest freundlich

Der Oracle Support versucht auch mit Freundlichkeit wett zu machen, was sie an Supportqualität vermissen lassen. Ich zitiere mal:

“Hope you are doing great.

It was a wonderful experience working with you.

Da spürt man regelrecht die Erleichterung des Supportles, der uns nun endlich vom Hals hat. Der Call hat sich nämlich ewig hingezogen, und eigentlich war es ein lächerliches GUI Probleme der Weblogic Console...

Mittwoch, 24. November 2010

Neuer HP zr24w Monitor und nvidia xorg driver

Gestern kam mein neuer Monitor, der Umstieg von 17 auf 24 Zoll bringts. Die Auswahl war schon recht schwer, die Hersteller haben soch ja wohl entschieden nur noch auf Breitbild zu gehen, zum Leid derer die auch mal Bilder in Hochformat anschauen (wie ich) und NICHT primär Filme schauen wollen. Da das 4:3 Format jenseits der 22 Zoll unbezahlbar wird, hab ich mich für 16:10 entschieden, 1920 x 1200 Pixel - so mach ich wenigstens in der vertikalen keinen Rückschritt.

Es ist also ein HP ZR24w geworden - und die letzten 2 Tage hab ich damit verbracht meinem X und dem nvidia treiber die 1920x1200 Auflösung beizubringen.

Problem: Der HP Monitor liefert offensichtlich kaputte EDID Daten über DVI. (mit get-edid kann man sie nicht auslesen, auch mit nvidia-settings könnte ich kein edid file erzeugen, dass dem Treiber auf die sprünge half). Ständig ein fallback auf eine bescheurte andere Auflösung. Der clou: Analog angeschlossen geht es. Aber auch das dort erzeugte EDID file war unbrauchbar.

Letztendlich hat sich herausgestellt, das der nvidia Treiber (oder die EDID Daten) falsche PixelClockRates probiert hatte (nur 135 Mhz, der Schirm kann 170Mhz !). Das hat verhindert dass die Modes geladen werden konnten.

Option "ModeValidation" "NoMaxPClkCheck"

stellt diese Erkennung ab und damit hatte es sich bei mir erledigt - zumindest kann der Treiber den Rest korrekt aus den EDID Daten auslesen. Hier meine komplette xorg.conf die mit nivida treiber und HP zr24w und 1920x1200 funktioniert:

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "InputDevice"

# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "HP ZR24w"
HorizSync 24.0 - 80.0
VertRefresh 59.0 - 61.0
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
Option "ModeValidation" "NoMaxPClkCheck"

EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection


Montag, 8. November 2010

SQL Server vs Oracle 1:0

OMG, ich musste grade was fürchterliches über Oracle lernen.

Oracle hat zwei Modi: Archivelogmode an und aus. Im Archivelogmode iteriert Oracle zyklisch über seine Redologs und schreibt wenn er sich selbst überholt die Files auf Disk wo man sie dann ins Archive Backup ziehen kann.

Diesen Modus kann man ausschalten (bei MSSQL macht man das z.B. auf Dev systemen machen, wo kein point in time recovery nötig). Ich dachte diese Funktion wäre bei Oracle die selbe - aber (festhalten): Im NoArchivelog mode werden full online backups inkonisistent. Ich dachte das Backup wäre konsistent (indem er z.B. so schlau ist während des Backups die nötigen Redologs mit aufs Band zu packen dass ich zumindest einen Zeitpunkt konsistent habe). Aber nein, krasse Scheiße - da machst du ein Backup und kannst es nicht nutzen - da kann ich's auch gleich lassen. Kann mir einer erklären, was bitteschön dieser Noarchivelog modus dann für einen Sinn macht??

Bin ja an sich kein Microsoft Verfechter, aber das haben sie wesentlich besser gelöst: Im "simple" mode ist zwar kein archiving an, aber mein Backup ist und bleibt konsistent (offensichtlich beinhaltet es alle Transactionlogs die nötig sind). Bei MaxDB übrignes auch. Würd mich interessieren ob das bei DB2 auch so ist...

Aber vermutlich ist das die Daseinsberechtigung diverser teurer Oracle Admins...

Samstag, 6. November 2010

Ebay

Usability ist bekanntlich nicht jedermanns Sache, vor allem die "Großen" haben damit oft Probleme. Man sollte meinen, dass z.B. Ebay seine Funktionen auch mal auf anderen Plattformen testet - wie beispielsweise welche die zwischen Groß und Kleinschreibung unterscheiden:




Beim Hochladen von Bildern belegt Ebay den Dialog mit *.jpg, *.gif vor. Schade, wenn eine Kamera die Bilder als "bild.JPG" oder "bild.Jpg"ablegt...

Freitag, 15. Oktober 2010

RDP Port 3389 nicht gebunden nach Citrix Server Deinstallation

Heute hatten wir folgendes "lustiges" Problem:



- Citrix deinstalliert von einem Windows 2008 R2 Server

- Danach ging RDP nicht mehr

- Port 3389 war nicht gebunden

- Remote Desktop Service up and running

- Keine RDP Verbindung möglich



Da offensichtlich noch nie jemand das Problem gelöst hat (außer neuinstallationen wie in div. Foren gepriesen), poste ich es mal hier:



Lösung: Einfach mal die RDP Verbindung löschen und neu anlegen.



Mittwoch, 25. August 2010

ZDF Plusminus Beitrag und CCC

Hat jemand gestern den Plusminus Beitrag gesehen? Vielleicht gabs bei Heise zu viele Vorschusslorbeeren, aber ich fand den Beitrag ziemlich schlecht.

Nur aus dem Beitrag geht nicht klar genug hervor, wo genau das Problem beim Personalausweis liegt: Liegt es am Lesegerät, oder durch Trojaner infizierte Laptops, oder ist es ein Fehler im Design? Eine vereinfachte Forderung z.B. "Macht das Verfahren sicherer durch Geräte die nicht vom PC abhängen" hätte das Ganze klarer auf den Punkt gebracht.

Für Unbeteiligte wird ungefähr hänge geblieben sein, dass es einigen "Hackern" gelungen ist "irgend etwas" mit einem "Programm aus dem Internet" mit dem neuen Personalausweis zu machen. Das mystische Bild des Hackers (gesprochen wie Tacker, nur mit H) wird dabei noch unterstützt durch den Kabelsalat nebst Unordnung auf dem Tisch vor den CCClern.

Aber die Message "Leute, dieser neue Perso ist nicht sicher, steckt ihn nicht überall rein und benutzt ihn besser nicht" kam nicht klar genug rüber, zumindest nicht so, dass Otto-Normalverbraucher begreift um WAS es eigentlich geht.

Er wird die Risiken wegignorieren (wer will schon was mit meinen Daten) und nur die Chancen sehen. Es ist halt bequemer den Perso durchzuziehen statt zur Post zu rennen und PostIdent zu machen.

Ich für meinen Teil seh's gelassen: die Gebühren und das Zusatzgerät für 30 eur werden die flächendeckende Verbreitung doch ziemlich eindämmen.

Ah, netzpolitik berichtet auch.

Unverzehrtheit der Ware

Gnihihi, folgendes hab ich grade in einer Versandbestätigung gelesen. Immer schön aufpassen, dass die Ware nicht von der Post angeknabbert wurde:
















Samstag, 17. Juli 2010

SAP Stellenanzeigen kaputt

SAP ist ja die größte deutschen Softwarefirma. Man sollte meinen dass DIE wissen, wie man Applikationen portabel macht...

Tja, falls ihr euch da bewerben wollt, dürft ihr auf keinen Fall die Komibnation Firefox+Linux benutzen, sonst fehlt nämlich der Scrollbalken m(.

Kaum zu glauben... Naja, zumindest konsistent inkonstitente usability: pageup/down geht, scrollen mit Mausrad wieder nicht (wie kriegt man DAS eigentlich hin??)

Montag, 28. Juni 2010

Satelliten in Realtime bei NASA

Nette App von der Nasa: Hier (http://science.nasa.gov/realtime/jtrack/3d/jtrack3d.html) kann man Satelliten in Echtzeit anschauen.

Dienstag, 15. Juni 2010

Mausterror auf Ubuntu

Ich werde paranoid. Meine Maus hüpft seit zwei Tagen willkürlich immer wieder in eine bestimmte Position zurück. (auf dem Bildschirm natürlich, nicht auf dem Schreibtisch ;-)

Das fühlte sich ungefähr so an als ob man mit VNC jemandem hilft und der einem ständig die Maus wegnimmt, während man sie selbst steuert. Kann aber eigentlich nicht sein, VNC war aus, eine Portweiterleitung war auch nicht aktiv.

Muss also Hardware sein. Also sämtliche Logs durchforstet um einem vermeintlichen HW Problem auf die Schliche zu kommen, nichts. Maus getauscht, half nix.

Als mir die Ideen ausgingen habe ich schon ernsthaft an Malware gedacht (was gibts da für Linux überhaupt?).

Tja und grade habe ich bemerkt, dass der Stift meines Grafiktablett statt in seiner Halterung, auf dem Grafiktablett lag. Und dort hat er eben ab und an mal seine Position mitgeteilt...

OMG m(

Donnerstag, 20. Mai 2010

SAPoscol und shared memory

SAP schlägt mir grade vor wegen eines (vermeintlichen) shared memory problems im saposcol das system zu rebooten. WTF?? Kann man das nicht anders frei kriegen? Für mich klingt das eher danach, dass SAP (=stark alkoholisierte programmierer) die Handles auf ihr shared memory nicht richtig zumachen wenn saposcoll restarted wird. Vermutlich ist deshalb auch nach restart des saposcol das memory nicht freigeben.

Update:

Ach ja, nachdem ich mich geweigert habe das System x mal zu rebooten und den verblödeten recommendations zu folgen hat sich dann rausgestellt, dass dem Parameter exe/saposcol das ".exe" am Ende fehlte. Also tatsächlich nix mit shared memory wie SAP die ganze zeit angenommen hatte...

Montag, 17. Mai 2010

Ubuntu Karmic und HP workstation

Nachdem wir endlich der Telekom den Rücken gekehrt haben und nun bei einem schnellen Kabel Anbieter sind, habe ich mal die Gelegenheit genutzt und Ubuntu auf 9.10 upgegraded.

Danach ging aus irgendwelchen Gründen das automatische power off beim shutdown nicht mehr. Der Rechner ist eine xw4100 HP workstation, vermutlich liegt es am neuen Kernel.

Man kann aber mit dem Kernelparameter


# defoptions=vga=794 apm=power_off
in der /boot/grub/menu.lst (grub 1.5) den Kernel zum ausschalten auf die alte Methode zwingen.

Danach noch kurz "update-grub" ausführen und in der /etc/modules folgende Zeile einfügen:

apm=power_off=1

Einmal rebooten, fertig.