nodeSolidServer / nodeSolidServer/node-solid-server
500 error on read public document - NamedNode IRI "null" must be absolute.
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
A strange obug. When the document is read by a webapp it gets a 500 error, but a simple curl gives 200.
$ curl -I https://solidos.solidcommunity.net/public/2021/10_example_data/example.ttl
HTTP/1.1 200 OK
X-Powered-By: solid-server/5.6.16
Vary: Accept, Authorization, Origin
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Authorization, User, Location, Link, Vary, Last-Modified, ETag, Accept-Patch, Accept-Post, Updates-Via, Allow, WAC-Allow, Content-Length, WWW-Authenticate, MS-Author-Via, X-Powered-By
Allow: OPTIONS, HEAD, GET, PATCH, POST, PUT, DELETE
Link: <example.ttl.acl>; rel="acl", <example.ttl.meta>; rel="describedBy", <http://www.w3.org/ns/ldp#Resource>; rel="type"
WAC-Allow: user="read write append",public="read write append"
MS-Author-Via: SPARQL
Updates-Via: wss://solidos.solidcommunity.net
Content-Type: text/turtle; charset=utf-8
Content-Length: 2
ETag: W/"2-nOO9QiTIwXgNtWtBJezz8kv3SLc"
Date: Tue, 16 Nov 2021 23:45:39 GMT
Connection: keep-alive
Keep-Alive: timeout=5
but the same URI when fetched by mashlib gives 500
HTTP/1.1 500 Internal Server Error
X-Powered-By: solid-server/5.6.16
Access-Control-Allow-Origin: null
Vary: Accept, Authorization, Origin
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Authorization, User, Location, Link, Vary, Last-Modified, ETag, Accept-Patch, Accept-Post, Updates-Via, Allow, WAC-Allow, Content-Length, WWW-Authenticate, MS-Author-Via, X-Powered-By
Allow: OPTIONS, HEAD, GET, PATCH, POST, PUT, DELETE
Link: <example.ttl.acl>; rel="acl", <example.ttl.meta>; rel="describedBy", <http://www.w3.org/ns/ldp#Resource>; rel="type"
Content-Type: text/plain; charset=utf-8
Content-Length: 39
ETag: W/"27-AVbkXABETaBBBb89giO49PTSQHQ"
Date: Tue, 16 Nov 2021 23:52:01 GMT
Connection: keep-alive
Keep-Alive: timeout=5
where it looks ss though the server log may look something like
0|solid | 2021-11-16T23:32:33.227Z solid:server Error page because of: Error: NamedNode IRI "null" must be absolute.
0|solid | at new NamedNode (/Users/timbl/src/github.com/solid/node-solid-server/node_modules/rdflib/lib/named-node.js:64:13)
0|solid | at Object.namedNode (/Users/timbl/src/github.com/solid/node-solid-server/node_modules/rdflib/lib/factories/canonical-data-factory.js:150:12)
0|solid | at new ACLChecker (/Users/timbl/src/github.com/solid/node-solid-server/lib/acl-checker.js:31:74)
0|solid | at Function.createFromLDPAndRequest (/Users/timbl/src/github.com/solid/node-solid-server/lib/acl-checker.js:189:12)
0|solid | at allowHandler (/Users/timbl/src/github.com/solid/node-solid-server/lib/handlers/allow.js:47:21)
0|solid | /Users/timbl/src/github.com/solid/node-solid-server/lib/handlers/allow.js:78
0|solid | const error = req.authError || await req.acl.getError(userId, mode)
0|solid | ^
0|solid | TypeError: Cannot read properties of undefined (reading 'getError')
0|solid | at allowHandler (/Users/timbl/src/github.com/solid/node-solid-server/lib/handlers/allow.js:78:50)
and the httop response body is
NamedNode IRI "null" must be absolute.
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Reproduza a diferença entre a requisição curl e a requisição da webapp mashlib e, em seguida, inspecione lib/acl-checker.js próximo às linhas 31 e 189 e lib/handlers/allow.js próximo às linhas 47 e 78. Rastreie por que o caminho da webapp produz um NamedNode null e verifique se a leitura do documento público não retorna mais um erro 500.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- javascript
- Domínio
- authorization, backend
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 25/100