nodeSolidServer / nodeSolidServer/node-solid-server

Syntax error when SPARQL Insert request is too large

Aberta
#1,628 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
JavaScript
Estrelas
1.8k
Forks
308
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

When sending PATCH request with a really large SPARQL Insert body, NSS responds with http code 400 and the following response body:

Patch document syntax error: Line 1 of <https://pod.example/resource>: Bad syntax:
   Unknown syntax at start of statememt: '[object Object]'
   at: "[object Object]"

This response is very misleading, since it asserts that I did send an invalid syntax

Expected behaviour

NSS should either process the request successfully, or respond with 413 Request Entity Too Large.

Steps to reproduce

Send something like this to NSS:

PATCH https://pod.example/resource
content-type: application/sparql-update
authorization: DPoP <token>
dpop: <dpop>

INSERT DATA {
</> <> "".
</> <> "".
</> <> "".
</> <> "".
</> <> "".
... round about 10.000 more of this ...
}

Is this really practically relevant?

Yes, see https://github.com/codecentric/web-clip/issues/7

First we had an actual syntax error. After fixing it, same response on NSS but this time just too large.

Depending on the page, WebClip might do really large insert requests. If we got a 413 we could at least handle it properly

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece rastreando o tratamento de PATCH do NSS para requisições application/sparql-update e o caminho do erro de tamanho da requisição; em seguida, reproduza o exemplo grande de INSERT fornecido. Está concluído quando a requisição é processada se houver suporte ou retorna HTTP 413 Request Entity Too Large em vez de um erro de sintaxe enganoso.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript, nodejs
Domínio
api, backend
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.