HelloZeroNet / HelloZeroNet/ZeroNet

`optionalFileInfo` returns incorrect `is_downloaded` value

Open
#2,728 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
18.8k
Forks
2.3k
PR merge metrics
No merged PRs in 30d

Description

* ZeroNet version: 0.7.2 (rev4555)

### Step 2: Describe the problem:

https://zeronet.io/docs/site_development/zeroframe_api_reference/#optionalfileinfo

According to the documentation this field has the following semantics:

```
is_downloaded | Whether this file has been completely downloaded
```

However its value is being returned as "1" for files that have never been downloaded.

#### Steps to reproduce:

The issue appears to be a collision in the `hashfield`.

https://github.com/HelloZeroNet/ZeroNet/blob/9d1bed11af8cf92951dd0f335e95101d8b1fa6a4/plugins/OptionalManager/ContentDbPlugin.py#L162-L164

So to reproduce you just need to receive new optional file with a `hash_id` that will collide with another hash in the site's hashfield.

#### Expected Results:

`is_downloaded` should return "1" only if the file has _actually_ been downloaded and "0" otherwise.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with plugins/OptionalManager/ContentDbPlugin.py at the linked lines 162-164 and review how the site's hashfield determines optional-file state. Reproduce the hash_id collision described in the issue, then verify that optionalFileInfo reports is_downloaded as "1" only for a file that was actually downloaded and "0" otherwise.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.