Java.io.IOException: Line too long

6 respostas
T

Minha aplicação WEB roda num JBoss, depois de alguns dias de uso ele dá o seguinte erro.

java.io.IOException: Line too long

at org.apache.catalina.connector.http.SocketInputStream.readRequestLine(SocketInputStream.java:271)

at org.apache.catalina.connector.http.HttpProcessor.parseRequest(HttpProcessor.java:710)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:974)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)

at java.lang.Thread.run(Thread.java:534)

e o servidor só volta a funcionar se reiniciar o JBoss

alguem tem ideia do que pode estar acontecendo ???

6 Respostas

Luca

Olá

Um chute, quando ocorrer o problema na próxima vez tente verificar o número de arquivos abertos pelo JBoss. Se for em um Unix-like veja tb se está esgotando o número de inodes.

Diga:

  • Sistema Operacional
  • versão Java
  • versão JBoss e versão tomcat
  • se o erro ocorre em um GET maior do que 256 chars
    e tudo o mais que possa servir de informação útil para a turma do JBoss

[]s
Luca

Paulo_Silveira

ela da esse erro pra qualquer request a partir desse momento?
versao do tomcat?

T

Pessoal

É o seguinte:

  • OS Red Hat 9
  • JBoss 3.0.4 com Tomcat 4.0.6
  • se o erro ocorre em um GET maior do que 256 chars - bem eu não sei preciso dar uma verificada com a base de produção…mas se isso acontecer ?
  • Base de dados é Postgres
  • Usa Struts, Velocity, DAO

Uma pergunta oque é inode ?

Valeuuuu

Paulo_Silveira

acho q oficalemtne uma url nao pode passar de 2048 caracteres.
atualize o tomcat!

Luca

Olá

Sempre que vejo uma aplicação travar e voltar a funcionar depois do restart penso logo na hipótese da aplicação abrir arquivos demais. No ambiente Unix ainda há a questão dos inodes.

Nos Unixes cada arquivo possui um identificador que é o inode. Um diretório pode ficar lotado por esgotar o espaço de arquivos mas pode também estourar o número máximo de inodes (mais ou menos igual ao número máximo de arquivos).

É claro que podem haver outras causas do problema, só estava tentando advinhar.

A observação quanto ao tamanho do GET foi só um alerta. GETs muito grandes devem ser alterados para POSTs. O tamanho máximo depende do agente mas na verdade o alerta está na RFC 2616 - 3.2.1 General Syntax:[list]Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations might not properly support these lengths.[/list]
[]s
Luca

Luca

Olá

Estive pensando sobre o que poderia estar esgotando os recursos do seu tomcat. Como disse antes, um programa que se conserta sozinho por reinicialização é porque esgota recursos de abrir arquivos, alocar memória e coisas do gênero. Aí me veio a lembrança de que vc falou em sistema em produção. Motivo da minha preocupação: hackers, possibilidade de DOS.

Examine os logs, veja todos indícios, verifique os firewalls. Pode ser que o problema seja da alçada do administrador de redes. Pensando em tudo isto reforço o conselho do Paulo: atualize o tomcat. Se usa páginas estáticas servidas pelo Apache atualize-o também e adote o conector jk2.

É isso aí, espero que minhas preocupações não tenham fundamento.

[]s
Luca

Criado 4 de maio de 2004
Ultima resposta 4 de mai. de 2004
Respostas 6
Participantes 3