Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #27938

Closed
Open
Opened Oct 02, 2018 by Damian Johnson@atagar

SQLite permission error writing to cache

I've had a couple users report nyx permission errors. Most likely this comes up when changing the user they run nyx as.

Users should be able to work around this with the following...

% echo "data_directory disabled" >> my_nyxrc
% nyx --config my_nyxrc

Stacktrace users report are the following...

Traceback (most recent call last):
  File "/usr/bin/nyx", line 11, in <module>
    load_entry_point('nyx==2.0.4', 'console_scripts', 'nyx')()
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 176, in main
    nyx.starter.main()
  File "/usr/lib/python3/dist-packages/stem/util/conf.py", line 289, in wrapped
    return func(*args, config = config, **kwargs)
  File "/usr/lib/python3/dist-packages/nyx/starter.py", line 118, in main
    nyx.curses.start(nyx.draw_loop, acs_support = config.get('acs_support', True), transparent_background = True, cursor = False)
  File "/usr/lib/python3/dist-packages/nyx/curses.py", line 217, in start
    curses.wrapper(_wrapper)
  File "/usr/lib/python3.6/curses/__init__.py", line 94, in wrapper
    return func(stdscr, *args, **kwds)
  File "/usr/lib/python3/dist-packages/nyx/curses.py", line 215, in _wrapper
    function()
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 194, in draw_loop
    interface = nyx_interface()
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 256, in nyx_interface
    Interface()  # constructor sets NYX_INTERFACE
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 589, in __init__
    self._header_panel = nyx.panel.header.HeaderPanel()
  File "/usr/lib/python3/dist-packages/nyx/panel/header.py", line 47, in __init__
    self._vals = Sampling.create()
  File "/usr/lib/python3/dist-packages/nyx/panel/header.py", line 235, in create
    my_router_status_entry = nyx.tracker.get_consensus_tracker().my_router_status_entry()
  File "/usr/lib/python3/dist-packages/nyx/tracker.py", line 169, in get_consensus_tracker
    CONSENSUS_TRACKER = ConsensusTracker()
  File "/usr/lib/python3/dist-packages/nyx/tracker.py", line 831, in __init__
    self._update(ns_response)
  File "/usr/lib/python3/dist-packages/nyx/tracker.py", line 853, in _update
    writer.record_relay(fingerprint, address, or_port, nickname)
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 569, in record_relay
    self._cache._query('INSERT OR REPLACE INTO relays(fingerprint, address, or_port, nickname) VALUES (?,?,?,?)', fingerprint, address, or_port, nickname)
  File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 541, in _query
    return self._conn.execute(query, param)

  sqlite3.OperationalError: attempt to write a readonly database

The cache is only for a performance improvement so when we lack cache write access nyx should emit a warning and simply avoid these calls.

To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#27938