lichti / containers4docker

GNU General Public License v3.0
35 stars 13 forks source link

Crash após logar-se no BB #8

Open humbertosales opened 7 years ago

humbertosales commented 7 years ago

Acabei de fazer um build do Dockerfile e quando entro no container pelo BB, digito conta e senha ele chega a carregar a tela principal da conta, mas 1 seg depois Crash. Gah. Your tab just crashed. Já restaurei, reiniciei e nada...

Erro do console do docker

 Handler function NetworkEventActorProxy.addResponseContent threw an exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/webconsole/network-monitor.js :: NetworkEventActorProxy.methodFactory/< :: line 1660"  data: no]
Stack: NetworkEventActorProxy.methodFactory/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/webconsole/network-monitor.js:1660:5
exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
NetworkResponseListener.prototype._onComplete@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/webconsole/network-monitor.js:621:5
NetworkResponseListener.prototype.onStreamClose@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/webconsole/network-monitor.js:578:7
NetworkResponseListener.prototype.onInputStreamReady@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/webconsole/network-monitor.js:669:7
Line: 1660, column: 0

Alguma dica?

humbertosales commented 7 years ago

O erro se repete ao usar a imagem latest que você subiu!!! Estou usando Docker for Windows

Conteudo do abrirBB.bat que criei:

docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -v ./Downloads:/home/bank/Downloads -e DISPLAY=192.168.1.221:0.0 --name warsaw-browser lichti/warsaw-browser bb

Algo errado?

humbertosales commented 7 years ago

Instalar o plugin do BB no Windows é relativamente simples, mas quem fez isso sabe que este plugin acaba com a máquina. Lentidão e travamentos constantes. Para quem é desenvolvedor de software, não raramente você terá arquivos bloqueados e que geram problemas sem qualquer sentido. Já vi o plugin travar arquivos .java e obrigar o desenvolvedor a reiniciar a máquina.

Se esta imagem permitir funcionar dentro do Windows, vários problemas vão ser resolvidos.

Valeu!!!

farribeiro commented 7 years ago

@humbertosales

Duas considerações, primeiro, por que está usando docker para windows, no meu projeto que é o pioneiro do gênero abri uma issue https://github.com/farribeiro/wscef-docker/issues/27 para experimentação. Enquanto esste projeto troquei expertise, conforme sugerido pelo @lbssousa pelo Issue https://github.com/farribeiro/wscef-docker/issues/16 .

A segunda consideração é a respeito do uso do java, não é necessário, conforme rebati em um artigo publicado pelo BR-Linux. A minha solução pelo menos foi testada no Fedora 25 e Opensuse Tumbleweed e muitos outros relatos de sucesso no Arch Linux, sem uso do WAYLAND e a respeito de utilizar no windows, o firefox sobe normalmente no windows?

O intuo destas soluções, existe até uma com VM, conforme o comentário no issue https://github.com/farribeiro/wscef-docker/issues/10#issuecomment-311753635 é ajudar a nossa "irmandade" software livre porém devemos ir além

aracnus commented 7 years ago

Eu estou com exatamente o mesmo problema aqui: imediatamente após a autenticação (eu chego a ver a tela do Banco do Brasil), a aba acusa erro. Estou usando na Debian Buster (testing) e a saída do console é:

[Parent 148] WARNING: pipe error (52): Connection reset by peer: file /tmp/buildd/firefox-esr-52.2.0esr/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 322 [Parent 148] WARNING: pipe error (42): Connection reset by peer: file /tmp/buildd/firefox-esr-52.2.0esr/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 322

!!! [Parent][MessageChannel] Error: (msgtype=0x2C0085,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

diraol commented 7 years ago

Também tenho tido o mesmo problema (Debian Stable), preciso olhar com calma o erro que aparece no console, não prestei atenção.

Um detalhe é que eu não estou usando a opção --rm para rodar o projeto, visando manter a "autentição" que o BB faz "da máquina".

Além disso, estranhamente se eu consigo clicar em alguns links da página do BB, como "saldo", ai a página abre sem erro. Mas muitas outras partes continuam levantando a mesma mesnagem ("Crash. Gah. Your tab just crashed")

diraol commented 7 years ago

Reportando o output que vejo aqui do docker:

[Parent 24] WARNING: pipe error (60): Connection reset by peer: file /tmp/buildd/firefox-esr-52.2.0esr/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 322

###!!! [Parent][MessageChannel] Error: (msgtype=0x2C0085,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

###!!! [Parent][MessageChannel] Error: (msgtype=0x2C0085,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

[Parent 24] WARNING: pipe error (43): Connection reset by peer: file /tmp/buildd/firefox-esr-52.2.0esr/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 322

###!!! [Parent][MessageChannel] Error: (msgtype=0x2C0085,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv
ninrod commented 7 years ago

esse recv aí parece problema de dbus. lembre-se: container não vem com dbus server

farribeiro commented 7 years ago

@ninrod Poderia explicar como poderia sanar este problema?

ninrod commented 7 years ago

teria que ter systemd no container. e isso é muito difícil de se fazer. Poderia tentar usar o chrome. o chrome é difícil de usar em container justamente porque usa o electron e o electron usa dbus pra caramba no linux. tem gente que já resolveu esse problema em um container, por exemplo aqui (mas faz 2 anos que não há um commit nesse repo). Enfim, estou estudando opções para driblar esse vírus warsaw.

hradec commented 7 years ago

o chrome roda em container sem problema se voce usar chrome --no-sandbox

ninrod commented 7 years ago

obrigado @hradec. Eu estudei mais a fundo o problema e acho que se o usuário adicionar a flag --shm-size:2g o problema é consertado. Acontece que por padrão o docker usa uma área de memória compartilhada = 64MB e isso não é suficiente para o firefox. Estou escrevendo um pull request com um conserto completo. Mas por enquanto vocês podem testar isso e me enviar feedback caso funcione ou não.

aracnus commented 7 years ago

Salve @ninrod ! Testei o parâmetro que você indicou aqui e funcionou redondo! Muito obrigado!

Só uma pequena correção. Na minha máquina com Debian, ao invés de colocar o parâmetro como --shm-size:2g tive que colocar como --shm-size 2g, pois estava dando erro de sintaxe.

farribeiro commented 6 years ago

@aracnus e @ninrod poderia mostrar o sintaxe completa do comando run ou build para compreender como estão procedendo na resolução deste problema?

ninrod commented 6 years ago

@farribeiro, é assim:

function warsaw-browser {
  xhost +
  docker run -it --rm                                              \
         -e DISPLAY=unix$DISPLAY                                   \
         -v /tmp/.X11-unix:/tmp/.X11-unix                          \
         -v $(readlink -f .):/opt/assets                           \
         --shm-size 2g              \
         --name warsaw-browser                                     \
         -w /opt/assets                                            \
         lichti/warsaw-browser bb
}
alias bb="warsaw-browser bb"

aí você roda exec zsh ou exec bash, e digita bb. é isso.

aracnus commented 6 years ago

No meu caso, nem cheguei nesse grau de preciosismo. :-) Simplesmente rodei o comando do docker em uma única linha:

docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/ArquivosDoBanco:/home/bank/Downloads -e DISPLAY=unix$DISPLAY --shm-size 2g --name warsaw-browser lichti/warsaw-browser bb

(mas é puro desleixo meu) ;-)

filipesaraiva commented 6 years ago

Acabei de baixar a imagem e tive o mesmo problema, que resolvi com o --shm-size 2g. Pelo jeito, essa correção ainda não foi enviada para a imagem no docker-hub.

sublinhado commented 4 years ago

Só reportando que o container está funcionando no Docker for Windows. Segui os passos desse link: https://dev.to/darksmile92/run-gui-app-in-linux-docker-container-on-windows-host-4kde O IP necessário é da interface vEthernet (default switch) e usei o comando abaixo para rodar o container:

docker run -it --rm -e DISPLAY=$DISPLAY --name warsaw-browser --shm-size 2g lichti/warsaw-browser bb