dsnopek / anki-sync-server

A personal Anki sync server (so you can sync against your own server rather than AnkiWeb)
GNU Affero General Public License v3.0
741 stars 95 forks source link

ERROR: unable to begin(*[], **{}) #48

Open Lertsenem opened 7 years ago

Lertsenem commented 7 years ago

Hi !

I recently started to use Anki and now I want to synchronize my decks with a hosted server. I manage my services using Docker, so I wrote a quick Dockerfile for your server and you can find the result here. I'm using the latest version of AnkiServer on pip: 2.0.6.

Everything seems to work well, I can enter my username and password (I'm connecting with AnkiDroid), but when I try to synchronize, AnkiDroid fails due to "Internal Server Error (500)".

Meanwhile, on the server side, I get the following logs:

INFO:root:CollectionThread[/anki/collections/niels/collection.anki2]: Running meta(*[], **{})
82.251.8.134 - - [17/Sep/2016:22:53:47 +0000] "POST /sync/meta HTTP/1.1" 200 108 "-" "AnkiDroid-2.6.1"
INFO:root:CollectionThread[/anki/collections/niels/collection.anki2]: Running begin(*[], **{})
ERROR:root:CollectionThread[/anki/collections/niels/collection.anki2]: Unable to begin(*[], **{}): begin() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/AnkiServer/threading.py", line 95, in _run
    ret = self.wrapper.execute(func, args, kw, return_queue)
  File "/usr/lib/python2.7/site-packages/AnkiServer/collection.py", line 58, in execute
    ret = func(*args, **kw)
  File "/usr/lib/python2.7/site-packages/AnkiServer/apps/sync_app.py", line 651, in run_func
    res = handler_method(**keyword_args)
TypeError: begin() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/paste/httpserver.py", line 1085, in process_request_in_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
    self.handle()
  File "/usr/lib/python2.7/site-packages/paste/httpserver.py", line 459, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/site-packages/paste/httpserver.py", line 454, in handle_one_request
    self.wsgi_execute()
  File "/usr/lib/python2.7/site-packages/paste/httpserver.py", line 304, in wsgi_execute
    self.wsgi_start_response)
  File "/usr/lib/python2.7/site-packages/paste/translogger.py", line 69, in __call__
    return self.application(environ, replacement_start_response)
  File "/usr/lib/python2.7/site-packages/paste/urlmap.py", line 216, in __call__
    return app(environ, start_response)
  File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/AnkiServer/apps/sync_app.py", line 582, in __call__
    result = self._execute_handler_method_in_thread(url, data, session)
  File "/usr/lib/python2.7/site-packages/AnkiServer/apps/sync_app.py", line 660, in _execute_handler_method_in_thread
    result = thread.execute(run_func)
  File "/usr/lib/python2.7/site-packages/AnkiServer/threading.py", line 76, in execute
    raise ret
TypeError: begin() takes exactly 2 arguments (1 given)

Any idea on why this happens ?

gabriellluz commented 6 years ago

Same is happening to me. I don't really want to use Ankiweb as my sync server because I don't want my cards to get exposed.