Opened 10 years ago

Closed 5 years ago

#11823 closed defect (fixed)

Stalls and crashes on Trac 1.0.1

Reported by: anonymous Owned by: Martin Scharrer
Priority: normal Component: MindMapMacro
Severity: normal Keywords: jqueryui
Cc: Trac Release: 1.0

Description (last modified by Jun Omae)

This plugin will not work for me using Trac 1.0.1

I am running it on an Ubuntu 14.04 Server which is running Python 2.7.6 with Graphviz 2.36 installed.

I installed it as an .egg in my environment's plugins folder using the latest ZIP download (changeset 13847).

When I load the page in the admin panel it loads the "Actions" buttons, "Columns" checkboxes, and the save/cancel/restore/text buttons, but nothing loads for the actual workflow table, and the workflow diagram just says "Updating..." but never loads either.

If I try clicking either of the "Save changes", "Cancel", "Restore initial state", or "Text mode" buttons it also causes an internal error in Trac with the following Traceback:

File "/usr/local/lib/python2.7/dist-packages/trac/web/", line 497, in _dispatch_request
File "/usr/local/lib/python2.7/dist-packages/trac/web/", line 214, in dispatch
  resp = chosen_handler.process_request(req)
File "/usr/local/lib/python2.7/dist-packages/trac/admin/", line 125, in process_request
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/", line 136, in render_admin_panel
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/", line 672, in _parse_request
  params = json.loads(req.args.get('params'))
File "/usr/lib/python2.7/json/", line 338, in loads
  return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/", line 366, in decode
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())

Inspecting the req.args.get('params') value shows that it is None which is what's causing that specific error.

I have quite a few plugins installed, but the only ones that effect workflow, tables, or use Graphviz are:

AdvancedTicketWorkflowPlugin 0.11dev
Table-Sorter-Plugin 1.0
trac-WorkflowActionButtons 0.2
TracMindMapMacro 0.4

I do also have a fairly large workflow I am using:

accept = new,assigned,accepted,reopened,needs_info,reviewing,in_progress -> accepted
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
failed = testing -> in_progress = failed testing
failed.permissions = TICKET_MODIFY
in_progress = new,assigned,accepted,reopened,needs_info,reviewing -> in_progress = in progress
in_progress.permissions = TICKET_MODIFY
leave = * -> *
leave.default = 1
leave.operations = leave_status
needs_info = new,assigned,accepted,reopened,reviewing,in_progress -> needs_info = needs additional information
needs_info.permissions = TICKET_MODIFY
passed = testing -> closed = passes testing
passed.operations = set_resolution
passed.permissions = TICKET_MODIFY
passed.set_resolution = fixed
reassign = new,assigned,accepted,reopened -> assigned
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reassign_in_progress = in_progress -> * = reassign to
reassign_in_progress.operations = set_owner
reassign_in_progress.permissions = TICKET_MODIFY
reassign_needs_info = needs_info -> * = reassign to
reassign_needs_info.operations = set_owner
reassign_needs_info.permissions = TICKET_MODIFY
reassign_review = review -> * = reassign to
reassign_review.operations = set_owner
reassign_review.permissions = TICKET_MODIFY
reassign_testing = testing -> * = reassign to
reassign_testing.operations = set_owner
reassign_testing.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,accepted,reopened,needs_info,reviewing,in_progress -> closed
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY
review = new,assigned,accepted,reopened,needs_info,in_progress,testing -> reviewing = needs review
review.permissions = TICKET_MODIFY
testing = new,assigned,accepted,reopened,needs_info,reviewing,in_progress -> testing = needs testing
testing.permissions = TICKET_MODIFY

There is nothing in the logs at all when the page fails to load, and there is only the traceback when the internal error occurs.

Attachments (0)

Change History (10)

comment:1 Changed 10 years ago by Jun Omae

Description: modified (diff)

Cannot reproduce it. What of browser are you using?

comment:2 Changed 10 years ago by Jun Omae

Keywords: needinfo added

comment:3 Changed 10 years ago by anonymous

I am using Firefox 30.

comment:4 Changed 10 years ago by Jun Omae

I'm also using Firefox 30 on Windows. It works for me.

Please check using Console and Network tabs on Web developer in your Firefox.

comment:5 Changed 10 years ago by anonymous

I was able to track down the issue. It was actually a jQuery-UI conflict between a few of the other plugins. It only caused a noticeable error on the Workflow Admin page for some reason though.

For now I have disabled the main offending plugin and everything is working fine with this plugin now.

comment:6 Changed 10 years ago by Jun Omae

In 13978:

tracworkflowadmin: use bundled jquery-ui in Trac core if Trac 1.0 and later (refs #11823)

comment:7 Changed 10 years ago by Jun Omae

Component: TracWorkflowAdminPluginMindMapMacro
Keywords: jqueryui added; needinfo removed
Owner: changed from Jun Omae to Martin Scharrer

Thanks for the feedback. I reproduce now. The jquery-ui conflicts between 1.8.6 in TracWorkflowAdminPlugin and 1.7.2 in MindMapMacro.

Workaround is to add the following to your trac.ini.

resizable = disabled

Otherwise, it would be fixed to apply the following patch to use bundled jqueryui in Trac core, except it's still broken on Trac 0.12.x.

  • mindmapmacro/0.11/tracmindmap/

    1515from trac.mimeview.api import IHTMLPreviewRenderer
    1616from trac.util         import md5, to_unicode
    1717from trac.web.api      import IRequestFilter, IRequestHandler, RequestDone
    18 from   import ITemplateProvider, add_script, add_stylesheet
     18from   import Chrome, ITemplateProvider, add_script, add_stylesheet
    1919from trac.web.href     import Href
    2020from     import IWikiMacroProvider, parse_args
    2121from tracextracturl    import extract_url
    136136        add_script( req, 'mindmap/tools.flashembed-1.0.4.min.js', mimetype='text/javascript' )
    137137        add_script( req, 'mindmap/mindmap.js', mimetype='text/javascript' )
    138138        if self.resizable:
    139             add_stylesheet( req, 'mindmap/ui.theme.css', mimetype='text/css' )
    140             add_stylesheet( req, 'mindmap/ui.resizable.css', mimetype='text/css' )
    141             add_script( req, 'mindmap/ui.core.js', mimetype='text/javascript' )
    142             add_script( req, 'mindmap/ui.resizable.js', mimetype='text/javascript' )
     139            if hasattr(Chrome, 'add_jquery_ui'):
     140                Chrome(self.env).add_jquery_ui(req)
     141            else:
     142                add_stylesheet( req, 'mindmap/ui.theme.css', mimetype='text/css' )
     143                add_stylesheet( req, 'mindmap/ui.resizable.css', mimetype='text/css' )
     144                add_script( req, 'mindmap/ui.core.js', mimetype='text/javascript' )
     145                add_script( req, 'mindmap/ui.resizable.js', mimetype='text/javascript' )
    143146        return (template, data, content_type)

comment:8 Changed 8 years ago by Ryan J Ollos

In 15575:

0.5dev: Use bundled jQuery-UI if available

Patch by Jun Omae.

Refs #11823.

comment:9 Changed 8 years ago by Ryan J Ollos

It looks like some of the image files needed by jQuery UI are missing, as reported in gmessage:trac-users:EqqLfeGcw5c/cF84UBZKBgAJ. After r15575 that shouldn't be an issue for Trac 1.0 and later.

Resizing still raises an error though:

jquery-ui.js:5 Uncaught TypeError: Cannot read property 'width' of undefined

comment:10 Changed 5 years ago by Ryan J Ollos

Resolution: fixed
Status: newclosed

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Martin Scharrer.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.