Skip to content

Cross-Entity Search gets 404 from TS when an empty string passed as a query #1751

@sentry-dev-app

Description

@sentry-dev-app

It looks like we pass a Cross-Entity Search query to Jena with an empty text:query filtering. That causes Jena to fail.

Example query:

PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>
PREFIX text: <http://jena.apache.org/text#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>

SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)
      # textQuery
      {SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {
            GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)} 
          UNION {
            GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId} GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.} 
          UNION {  ?projectId renku:visibility 'public'.  } UNION 
          {  ?projectId renku:visibility 'internal'.  }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))
LIMIT 24
OFFSET 0

Sentry Issue: RENKU-GRAPH-E5

RestClientError$BadRequestException: POST http://renku-jena-master:3030/projects/sparql returned 400 Bad Request; body: Query parse error:PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>PREFIX text: <http://jena.apache.org/text#>PREFIX prov: <http://www.w3.org/ns/prov#>PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX schema: <http://schema.org/>SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)# textQuery{SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)} UNION {GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId}GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.} UNION {  ?projectId renku:visibility 'public'.  } UNION {  ?projectId renku:visibility 'internal'.  }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))LIMIT 24OFFSET 0Text search parse error:Cannot parse 'name: keywords: description: projectNamespaces: ': Encountered " ":" ": "" at line 1, column 14.Was expecting one of:<EOF><AND> ...<OR> ...<NOT> ..."+" ..."-" ...<BAREOPER> ..."(" ..."*" ..."^" ...<QUOTED> ...<TERM> ...<FUZZY_SLOP> ...<PREFIXTERM> ...<WILDTERM> ...<REGEXPTERM> ..."[" ..."{" ...<NUMBER> ...
    at io.renku.http.client.RestClient$$anonfun$raiseBadRequest$1.$anonfun$applyOrElse$1(RestClient.scala:155)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
...
(12 additional frame(s) were not displayed)

Cross-entity search failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions