Um update sobre os 100 dias

Categoria: Linux Publicado: Quinta, 02 Agosto 2012 Escrito por Helio Loureiro

E minha alegria realmente chegou ao fim nos 110 dias de uptime.  Dessa vez o culpado foi o filesystem, XFS, que começou a cuspir vários erros como esses:

 
XFS (sda1): xlog_space_left: head behind tail
  tail_cycle = 252, tail_bytes = 8731136
  GH   cycle = 252, GH   bytes = 8731128
XFS (sda1): xlog_space_left: head behind tail
  tail_cycle = 252, tail_bytes = 8731136
  GH   cycle = 252, GH   bytes = 8731128
XFS (sda8): xlog_space_left: head behind tail
  tail_cycle = 1212, tail_bytes = 8328704
  GH   cycle = 1212, GH   bytes = 8328696
XFS (sda8): xlog_space_left: head behind tail
  tail_cycle = 1212, tail_bytes = 8328704
  GH   cycle = 1212, GH   bytes = 8328696
XFS (sda8): xlog_space_left: head behind tail
  tail_cycle = 1212, tail_bytes = 8356864
  GH   cycle = 1212, GH   bytes = 8356856
XFS (sda8): xlog_space_left: head behind tail
  tail_cycle = 1212, tail_bytes = 8356864
  GH   cycle = 1212, GH   bytes = 8356856
XFS (dm-0): xlog_space_left: head behind tail
  tail_cycle = 350, tail_bytes = 158558208
  GH   cycle = 350, GH   bytes = 158558200
XFS (dm-0): xlog_space_left: head behind tail
  tail_cycle = 350, tail_bytes = 158558208
  GH   cycle = 350, GH   bytes = 158558200
XFS (sda1): xlog_space_left: head behind tail
  tail_cycle = 252, tail_bytes = 8787968
  GH   cycle = 252, GH   bytes = 8787960
 
Isso em todas as partições.  Tentei forçar um "init 1" pra single mode e "desmontar/montar" as partições, mas as mesmas não permitiam isso.  Como encontrei referências bem ruins sobre esse comportamente, dizendo que poderia levar à perda de dados, eu preferi fazer o reboot do sistema.
 
A lista da SGI, criadora do XFS, foi essencial pra decidir o que fazer.  Só espero que o problema não se repita nos meus próximos 100 dias de uptime.
 

A guerra dos 100 dias

Categoria: Linux Publicado: Sexta, 20 Julho 2012 Escrito por Helio Loureiro

11:55:20 up 100 days, 0 min, 43 users, load average: 1.22, 0.83, 0.84


Finalmente meu laptop, de uso diário e pessoal, quebrou a barreira dos 100 dias de uptime. E o que isso quer dizer?  Nada, e ao mesmo tempo, várias coisas. Mas significa que estou trabalhando sem interrupções por 100 dias.

Fazia tempo que eu não tinha um uptime maior que 30 dias, quanto mais de 100.  O problema não era específico, mas um conjunto deles.  O que mais afetava o tempo em que a máquina funcionava sem interrupções (leia-se travamentos) era o driver de vídeo Intel.  Invariavelmente o Xorg apresentava um crash por conta dos efeitos 3D do KDE com o plasma-desktop.  Tentei de tudo, inclusive desabilitar os efeitos e até mesmo parar de usar o KDE, mas o crash de xorg sempre me encontrava.

Contudo vários esforços ocorreram em várias frentes e paralelamente, como sempre acontece no mundo do software livre.  A equipe do Xorg melhorou o driver Intel, o KDE, com o lançamento do 4.7, criou uma forma de contornar esse crash, deixando o ambiente plasma muito mais estável e, por fim, a equipe de kernel trabalhou na melhoria do driver framebuffer e DRM pra Intel.

Esse conjunto de melhorias deram um resultado excelente, visível pelo tempo em que o laptop está funcionando sem parar.  E olhe que o uso é intenso.  Faço desde desenvolvimento de software até apresentações pra clientes, inclusive utilizando 2 monitores (em geral uma televisão).  Tive alguns problemas nesse percurso, como uma sobrecarga no xorg, que levou o KDE a cair, mas nada que um reinício do serviço gráfico não pudesse resolver, sem precisar rebootar o laptop.

Em geral tenho trabalhado de forma consistente, fechando e abrindo o laptop, sem reiniciar o trabalho que tinha parado anteriormente.  Isso garante um ganho de produtividade muito bom, pois já vejo em que ponto eu estava da última vez e continuo dali pra frente.  Nada de reabrir documentos e procurar onde foi a última linha editada, nada de reabrir ambientes de desenvolvimento, nada de reiniciar minhas conexões SSH pra máquinas em que trabalho via VPN, já que faço isso automaticamente via script, que só detectam a queda do link e reiniciam a conexão.  Fecho o laptop na sexta-feira e reabro na segunda, como se tivesse parado pra um café.

Então quando se vê um uptime alto, não estamos falando somente de tempo se desligar a máquina mas a produtividade que isso proporciona.  Claro que existe um lado egocêntrico de falar no tempo sem desligar ou sem reboot, que vem da cultura de sysadmin, onde o maior uptime significa (ou ao menos significava) um servidor bem ajustado e configurado, mas isso é quase insignificante em relação ao benefício do trabalho ininterrupto.

E você?  Já chegou aos 100 dias ou isso ainda é um fardo pra sua produtividade?

Linux e problemas na placa de rede

Categoria: Linux Publicado: Terça, 27 Março 2012 Escrito por Helio Loureiro

Hoje pela manhã (ou quase isso), fui surpreendido pelo mau funcionamento da minha placa de rede cabeada, uma placa gigabit.  Não é uma placa que eu tenha escolhido, pois faz parte do notebook, um Sony Vaio VPC-S110GB.

Como a placa não tem led de indicação de funcionamento, eu só consegui identificar que não estava operando pela mensagem abaixo:

root@shibboleet:~# dmesg | grep -i eth
[45263.845838] ADDRCONF(NETDEV_UP): eth0: link is not ready

Após algumas tentativas infrutíferas de colocar e tirar o cabo (acabei até quebro o clipezinho que segura o cabo), dei uma olhada como estava a camada de enlace ethernet.

root@shibboleet:~# mii-tool eth0
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
eth0: negotiated 1000baseT-HD flow-control, link ok

Esse "Input/output error" já me deu uma dica que algo tinha acontecido com o driver da placa.  Como estou usando um kernel-pf, e compilado por mim, esse tipo de erro pode mesmo surgir.  Claro que existe a possibilidade de ser um defeito da placa, mas prefiro acreditar que o erro é meu, pois esse eu consigo consertar.

Leia mais:Linux e problemas na placa de rede

UFOAI, OpenGL e nvidia vs Intel

Categoria: Linux Publicado: Domingo, 25 Março 2012 Escrito por Helio Loureiro

Gosto do jogo UFOAI, de UFO Alien Invasion.  É um jogo de estratégia que joguei pela primeira vez nos tempos do DOS e do "Windows 3.11 for Workgroups".  Nessa época era um outro jogo, pago, e que se chamava X-Com Unknown Enemy, ou algo assim.  Com o avanço dos sistemas, computadores, e jogos, obviamente ficou obsoleto e esquecido.  Então alguns fãns resolveram fazer uma versão opensource do jogo, e claro, com esteróides. 

O jogo exige OpenGL pra rodar, pois usa massivamente o "quake engine" pra renderizar os ambientes.  E é fantástico, e difícil, pois tem uma inteligência artificial aprimorada, que faz com que seus soldados saiam correndo de medo no meio de algumas batalhas.

Fazia tempo que não jogava, mesmo porque jogo mais em console que no PC, mas essa semana resolvi brincar um pouco.  Eis que descubro um problema de OpenGL no meu laptop:

helio@shibboleet:~$ ufo +set vid_ref sdl

---- filesystem initialization -----
Adding game dir: /usr/share/games/ufoai/base
Added packfile /usr/share/games/ufoai/base/0base.pk3 (9 files)
Added packfile /usr/share/games/ufoai/base/0maps.pk3 (544 files)
Added packfile /usr/share/games/ufoai/base/0materials.pk3 (45 files)
Added packfile /usr/share/games/ufoai/base/0media.pk3 (10 files)
Added packfile /usr/share/games/ufoai/base/0models.pk3 (2015 files)
Added packfile /usr/share/games/ufoai/base/0music.pk3 (49 files)
Added packfile /usr/share/games/ufoai/base/0pics.pk3 (2114 files)
Added packfile /usr/share/games/ufoai/base/0shaders.pk3 (26 files)
Added packfile /usr/share/games/ufoai/base/0snd.pk3 (266 files)
Added packfile /usr/share/games/ufoai/base/0ufos.pk3 (97 files)
Adding game dir: ./base
Added packfile ./base/0base.pk3 (9 files)
Added packfile ./base/0maps.pk3 (544 files)
Added packfile ./base/0materials.pk3 (45 files)
Added packfile ./base/0media.pk3 (10 files)
Added packfile ./base/0models.pk3 (2015 files)
Added packfile ./base/0music.pk3 (49 files)
Added packfile ./base/0pics.pk3 (2114 files)
Added packfile ./base/0shaders.pk3 (26 files)
Added packfile ./base/0snd.pk3 (266 files)
Added packfile ./base/0ufos.pk3 (97 files)
Adding game dir: /home/helio/.ufoai/2.3.1/base
using /home/helio/.ufoai/2.3.1/base for writing
executing default.cfg
couldn't execute config.cfg

----- network initialization -------
libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3 initialized.

------ server initialization -------
added 7 maps to the mapcycle

----- console initialization -------
Console initialized.

------- video initialization -------
SDL version: 1.2.14
I: desktop depth: 32bpp
I: video memory: 0
I: Available resolutions: 1366x1792 1366x768 1360x768 1024x768 800x600 640x480 (6)
I: video driver: x11
I: setting mode -1
I: set swap control to 0
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  155 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  25
  Current serial number in output stream:  26

Tentei forçar o sistema a inicializar sem o uso de OpenGL, com o parâmetro "+set vid_ref sdl", mas nem isso resolveu.  Como não existe nada mais sagrado ao homem que seus jogos eletrônicos, resolvi consertar o problema.  Ou ao menos tentar.

Leia mais:UFOAI, OpenGL e nvidia vs Intel

Tocando uns WMV mal educados

Categoria: Linux Publicado: Sexta, 09 Março 2012 Escrito por Helio Loureiro

Não vou escrever sobre vídeos de pornografia ou de pessoas xingando, nada disso.  Vou falar de novo dos "padrões Microsoft".  Não é de hoje que a Microsoft cria aplicativos não padronizados e que fazem questão de não funcionar em outros sistemas além do Windows.

Num desses dias me deparei com um danado de um arquivo de vídeo, WMV, que não funcionava de jeito nenhum.


helio@shibboleet:tmp$ mplayer sound_of_music.wmv 
mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing sound_of_music.wmv.
ASF file format detected.
[asfheader] Video stream found, -vid 1
[asfheader] Audio stream found, -aid 2
VIDEO:  [WMV3]  352x264  24bpp  1000.000 fps  336.0 kbps (41.0 kbyte/s)
Load subtitles in ./
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
[VO_TDFXFB] Can't open /dev/fb0: Permission denied.
[VO_3DFX] Unable to open /dev/3dfx.
NVIDIA: could not open the device file /dev/nvidiactl (No such file or directory).
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Opening video decoder: [dmo] DMO video codecs
DMO dll supports VO Optimizations 0 1
DMO dll might use previous sample when requested


MPlayer interrupted by signal 11 in module: init_video_codec

Leia mais:Tocando uns WMV mal educados