This happens for me regardless of settings/tables used, so its a bit hard to create sample data for this.

Thus a bit more detailed:

- Right click on a table

- Select maintenance

- Click "Ok"


On my system that opens a popup with the text: "Maintenance job creation failed."

And IMHO that all makes sense as the request that is being posted from pgAdmin frontend is:

data={"op":"VACUUM","vacuum_full":false,"vacuum_freeze":false,"vacuum_analyze":false,"verbose":true,"database":"somedb","schema":"public","table":"images"}

and the relevant lines in the pgAdmin backend are (https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/tools/maintenance/__init__.py#L181)

    data = dict(request.form)

    data = json.loads(data['data'][0], encoding='utf-8')


And thus json.loads only gets the first character of the data field ('{').

Please let me know which other infos i could provide to hunt this bug down.

Thanks,

SleepProgger


On 06.11.18 06:36, Khushboo Vashi wrote:
Hi,

I am not able to reproduce this issue at my end.
Can you please provide some sample data through which I can reproduce this issue?

Thanks,
Khushboo

On Mon, Nov 5, 2018 at 11:14 PM SleepProgger <secur...@gnutp.com <mailto:secur...@gnutp.com>> wrote:

    Hi all.


    When trying to use any of the maintenance features (right click on
    table
    -> maintenance) i get a "Maintenance job creation failed." popup.

    ~/.pgadmin/pgadmin4.log says:

    |2018-11-05 14:35:43,015: ERROR    werkzeug:    Error on request:||
    ||Traceback (most recent call last):||
    ||  File "/usr/lib/python3.7/site-packages/werkzeug/serving.py", line
    270, in run_wsgi||
    ||    execute(self.server.app)||
    ||  File "/usr/lib/python3.7/site-packages/werkzeug/serving.py", line
    258, in execute||
    ||    application_iter = app(environ, start_response)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1997, in __call__||
    ||    return self.wsgi_app(environ, start_response)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1985, in wsgi_app||
    ||    response = self.handle_exception(e)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1540, in handle_exception||
    ||    reraise(exc_type, exc_value, tb)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/_compat.py",

    line 33, in reraise||
    ||    raise value||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1982, in wsgi_app||
    ||    response = self.full_dispatch_request()||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1614, in full_dispatch_request||
    ||    rv = self.handle_user_exception(e)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1517, in handle_user_exception||
    ||    reraise(exc_type, exc_value, tb)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/_compat.py",

    line 33, in reraise||
    ||    raise value||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1612, in full_dispatch_request||
    ||    rv = self.dispatch_request()||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask/app.py",
    line
    1598, in dispatch_request||
    ||    return self.view_functions[rule.endpoint](**req.view_args)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/flask_login.py",
    line 792, in decorated_view||
    ||    return func(*args, **kwargs)||
    ||  File
    "/usr/lib/pgadmin4/web/pgadmin/tools/maintenance/__init__.py",
    line 181, in create_maintenance_job||
    ||    data = json.loads(data['data'][0], encoding='utf-8')||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/simplejson/__init__.py",

    line 535, in loads||
    ||    return cls(encoding=encoding, **kw).decode(s)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/simplejson/decoder.py",

    line 370, in decode||
    ||    obj, end = self.raw_decode(s)||
    ||  File
    "/usr/lib/pgadmin4/venv/lib/python3.7/site-packages/simplejson/decoder.py",

    line 400, in raw_decode||
    ||    return self.scan_once(s, idx=_w(s, idx).end())||
    ||simplejson.errors.JSONDecodeError: Expecting property name
    enclosed in
    double quotes or '}': line 1 column 2 (char 1)|

    I tracked this bug down and it looks like the reason is the
    'data['data'][0]' in
    
https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/tools/maintenance/__init__.py#L181

    .

    The [0] doesn't really make any sense there, and after removing it
    the
    problem was fixed.


    PGadmin4 version: 3.4

    Browser: 63.0.1 (64-bit)

    (Altho i don't think it matters in this case)



Reply via email to