JanusGraph / JanusGraph/janusgraph
Bug caused by the without operator
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
- Version: 1.0.0
- Storage Backend: inmemory
- Mixed Index Backend: elasticresearch-8.6.0
- API/Driver: Gremlin-python 3.2.6
- Steps to Reproduce:

As shown in this picture, query 1 returns the number of edges that have the "p2" property and the "p2" property value does not contain 'GhR'. It can be seen that Janusgraph and tinkergraph return different values. Query 2 returns the number of edges that have the "p2" property, and it is observed that the results of the two graph database engines are consistent. Therefore, we believe that there is an issue with the use of the without operator. Subsequently, we use query 3 to return the property key-value pairs of edges that have the "p2" attribute, and the "p2" property value does not contain 'GhR'. We found that Janusgraph only returns edges with "p2" attribute value as True. It can be inferred that Janusgraph has a bug when using the without operator to handle property values of different types.
Contributor guide
Research direction
Start by reproducing queries 1, 2, and 3 with the in-memory storage backend, Elasticsearch mixed index, and Gremlin-Python 3.2.6, comparing JanusGraph with TinkerGraph. Trace how the without operator evaluates edge properties with different value types. Done means the filtered results and property values agree with the expected behavior across both graph engines.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elasticsearch, python
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100