Version-Release number of selected component: dnf-0.4.7-1.fc20 Additional info: reporter: libreport-2.1.9 cmdline: /usr/bin/python /usr/bin/dnf -v makecache timer dso_list: python-libs-2.7.5-9.fc20.x86_64 executable: /usr/bin/dnf kernel: 3.11.8-300.fc20.x86_64 runlevel: N 5 type: Python uid: 0 Truncated backtrace: decoder.py:383:raw_decode:ValueError: No JSON object could be decoded Traceback (most recent call last): File "/usr/bin/dnf", line 35, in <module> main.user_main(sys.argv[1:], exit_code=True) File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 277, in user_main errcode = main(args) File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 64, in main return _main(base, args) File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 112, in _main cli.configure(args) File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 1308, in configure self._configure_repos(opts) File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 1081, in _configure_repos for rid in self.base._persistor.get_expired_repos(): File "/usr/lib/python2.7/site-packages/dnf/persistor.py", line 85, in get_expired_repos return self._get_expired_from_json() File "/usr/lib/python2.7/site-packages/dnf/persistor.py", line 69, in _get_expired_from_json data = json.load(f) File "/usr/lib64/python2.7/json/__init__.py", line 290, in load **kw) File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib64/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib64/python2.7/json/decoder.py", line 383, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded Local variables in innermost frame: s: '' self: <json.decoder.JSONDecoder object at 0x7fe0aa276090> idx: 0
Created attachment 826471 [details] File: backtrace
Created attachment 826472 [details] File: environ
Could you confirm that /var/cache/dnf/$basearch/$release/expired_repos.json is an empty file? That should not happen.. A reproducer that creates it would be great.
sh-4.2# ls -l /var/cache/dnf/x86_64/20/expired_repos.json -rw-r--r--. 1 root root 2 Nov 20 11:23 /var/cache/dnf/x86_64/20/expired_repos.json sh-4.2# hexdump -C /var/cache/dnf/x86_64/20/expired_repos.json 00000000 5b 5d |[]| 00000002
Jan this seems related to your json storage patches. Will you please handle this?
I forgot to write in the comment 4. I don't know how to reproduce it. The problem occurred on 2013-11-20 09:23:29. I didn't use dnf at this time. As you can see, file expired_repos.json was modified at "11:23" I try dnf, but sometimes I use also yum. So it may be related.
Has it worked after "11:23"? Is in your dir "/var/cache/dnf/x86_64/20" file "expired_repos" (without json extention)? Had you interrupted dnf job sometime before the error occured?
Yes, dnf works well. It occurred just a once and I am not sure how to reproduce. At the moment: sh-4.2# ls -l /var/cache/dnf/x86_64/20/expired_repos.json -rw-r--r--. 1 root root 2 Nov 22 13:37 /var/cache/dnf/x86_64/20/expired_repos.json sh-4.2# cat /var/cache/dnf/x86_64/20/expired_repos.json []
Although we don't know what caused that error, I've fixed it for the case that the file is empty as it's look like (still should never happen). It will now continue execution and print warning: "expired_repos.json is empty file". If you see this error message please report it again.
dnf-0.4.9-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/dnf-0.4.9-1.fc20
Package dnf-0.4.9-1.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing dnf-0.4.9-1.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-22638/dnf-0.4.9-1.fc20 then log in and leave karma (feedback).
dnf-0.4.9-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.