Version 3 (modified by trac, 10 months ago) (diff)

TicketQuery Wiki Macro

The TicketQuery macro lets you display ticket information anywhere that accepts WikiFormatting. The query language used by the [[TicketQuery]] macro is described in the TracQuery page.



Wiki macro listing tickets that match certain criteria.

This macro accepts a comma-separated list of keyed parameters, in the form "key=value".

If the key is the name of a field, the value must use the syntax of a filter specifier as defined in TracQuery#QueryLanguage. Note that this is not the same as the simplified URL syntax used for query: links starting with a ? character. Commas (,) can be included in field values by escaping them with a backslash (\).

Groups of field constraints to be OR-ed together can be separated by a literal or argument.

In addition to filters, several other named parameters can be used to control how the results are presented. All of them are optional.

The format parameter determines how the list of tickets is presented:

  • list — the default presentation is to list the ticket ID next to the summary, with each ticket on a separate line.
  • compact — the tickets are presented as a comma-separated list of ticket IDs.
  • count — only the count of matching tickets is displayed
  • rawcount — only the count of matching tickets is displayed, not even with a link to the corresponding query (since 1.1.1)
  • table — a view similar to the custom query view (but without the controls)
  • progress — a view similar to the milestone progress bars

The max parameter can be used to limit the number of tickets shown (defaults to 0, i.e. no maximum).

The order parameter sets the field used for ordering tickets (defaults to id).

The desc parameter indicates whether the order of the tickets should be reversed (defaults to false).

The group parameter sets the field used for grouping tickets (defaults to not being set).

The groupdesc parameter indicates whether the natural display order of the groups should be reversed (defaults to false).

The verbose parameter can be set to a true value in order to get the description for the listed tickets. For table format only. deprecated in favor of the rows parameter

The rows parameter can be used to specify which field(s) should be viewed as a row, e.g. rows=description|summary

The col parameter can be used to specify which fields should be viewed as columns. For table format only.

For compatibility with Trac 0.10, if there's a last positional parameter given to the macro, it will be used to specify the format. Also, using "&" as a field separator still works (except for order) but is deprecated.


Example Result Macro
Number of Triage tickets: 30 [[TicketQuery(status=new&milestone=,count)]]
Number of new tickets: 239 [[TicketQuery(status=new,count)]]
Number of reopened tickets: 9 [[TicketQuery(status=reopened,count)]]
Number of assigned tickets: 154 [[TicketQuery(status=assigned,count)]]
Number of invalid tickets: 65 [[TicketQuery(status=closed,resolution=invalid,count)]]
Number of worksforme tickets: 73 [[TicketQuery(status=closed,resolution=worksforme,count)]]
Number of duplicate tickets: 134 [[TicketQuery(status=closed,resolution=duplicate,count)]]
Number of wontfix tickets: 150 [[TicketQuery(status=closed,resolution=wontfix,count)]]
Number of fixed tickets: 1184 [[TicketQuery(status=closed,resolution=fixed,count)]]
Number of untriaged tickets (milestone unset): 118 [[TicketQuery(status!=closed,milestone=,count)]]
Total number of tickets: 2465 [[TicketQuery(count)]]
Number of tickets reported or owned by current user: 44 [[TicketQuery(reporter=$USER,or,owner=$USER,count)]]
Number of tickets created this month: 7 [[TicketQuery(created=thismonth..,count)]]
Number of closed Firefox tickets: 1 [[TicketQuery(status=closed,keywords~=firefox,count)]]
Number of closed Opera tickets: 1 [[TicketQuery(status=closed,keywords~=opera,count)]]
Number of closed tickets affecting Firefox and Opera: 0 [[TicketQuery(status=closed,keywords~=firefox opera,count)]]
Number of closed tickets affecting Firefox or Opera: 2 [[TicketQuery(status=closed,keywords~=firefox|opera,count)]]
Number of tickets that affect Firefox or are closed and affect Opera: 2 [[TicketQuery(status=closed,keywords~=opera,or,keywords~=firefox,count)]]
Number of closed Firefox tickets that don't affect Opera: 0 [[TicketQuery(status=closed,keywords~=firefox -opera,count)]]
Last 3 modified tickets: #2601, #2713, #2714 [[TicketQuery(max=3,order=modified,desc=1,compact)]]

Details of ticket #1:


Ticket Owner Reporter
#1 zzz
Summary News Fetcher Fix

Format: list


This is displayed as:

No results


This is displayed as:

No results

Format: compact

[[TicketQuery(version=0.6|0.7&resolution=duplicate, compact)]]

This is displayed as:

No results

Format: count

[[TicketQuery(version=0.6|0.7&resolution=duplicate, count)]]

This is displayed as:


Format: progress


This is displayed as:

Format: table

You can choose the columns displayed in the table format (format=table) using col=<field>. You can specify multiple fields and the order they are displayed by placing pipes (|) between the columns:


This is displayed as:

Results (1 - 3 of 1863)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#2712 not a bug Outproxy not found curewindow
#2693 fixed Pack200 removal Java 14 zzz zzz
#2686 fixed High CPU, leaks memory zzz jogger
1 2 3 4 5 6 7 8 9 10 11

Full rows

In table format you can specify full rows using rows=<field>:


This is displayed as:

Results (1 - 3 of 1863)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#2712 not a bug Outproxy not found curewindow

I can visit many i2p eepsites as usual. I have green light for tunnels and peers are enough. However, I have received the warning for several weeks when I visit any non-i2p website.

The HTTP Outproxy was not found. It is offline, there is network congestion, or your router is not yet well-integrated with peers. You may want to retry as this will randomly reselect an outproxy from the pool you have defined here (if you have more than one configured). If you continue to have trouble you may want to edit your outproxy list here.

I have set the browser proxy as 4444 (http) and 4445(ssl). My HTTP Outproxy: false.i2p, HTTPS Outproxy: outproxy-tor.meeh.i2p. I know that false.i2p is slow. But my i2p used to be fine. The problem took place first when I updated to 0.9.45. I can always visit clearnet such as google via i2p before that. The problem goes on after I deleted i2p totally and reinstalled 0.9.41 and reseeds. I tried several browsers. I configured "Prefer IPv4 over IPv6". I removed the "::1," in the "clientApp.0.args" line, and added "" and "" as ticket:1400.


SERVICE (WRAPPER) LOGS INFO: Native CPUID library jcpuid-x86-windows loaded from file INFO: Locally optimized library jbigi-windows-athlon64.dll loaded from file WARN: Configured for 50.00MiBps share bandwidth but only 123.75MiB available memory. Recommend running the restartable version of I2P, and increasing in …\i2p\wrapper.config to at least 140 (MB) if the actual share bandwidth exceeds 512.00KiBps. WARNING: Error starting ConsoleSocket?@……{HTTP/1.1}{::1:7657}: Address family not supported by protocol family: bind Address family not supported by protocol family: bind

at Method) at Source) at Source) at Source) at Source) at org.eclipse.jetty.server.ServerConnector?.open(ServerConnector?.java:321) at org.eclipse.jetty.server.AbstractNetworkConnector?.doStart(AbstractNetworkConnector?.java:80) at org.eclipse.jetty.server.ServerConnector?.doStart(ServerConnector?.java:236) at org.eclipse.jetty.util.component.AbstractLifeCycle?.start(AbstractLifeCycle?.java:68) at net.i2p.router.web.RouterConsoleRunner?.startConsole(RouterConsoleRunner?.java:769) at net.i2p.router.web.RouterConsoleRunner?.startup(RouterConsoleRunner?.java:235) at net.i2p.router.startup.RouterAppManager?.addAndStart(RouterAppManager?.java:54) at net.i2p.router.startup.LoadClientAppsJob?$RunApp?.run(LoadClientAppsJob?.java:301) at Source) at

WARNING: Error starting one or more listeners of the Router Console server. If your console is still accessible at, this may be a problem only with binding to the IPV6 address ::1. If so, you may ignore this error, or remove the "::1," in the "clientApp.0.args" line of the clients.config file.

#2693 fixed Pack200 removal Java 14 zzz zzz

Pack200 deprecated in Java 11

Now removed in upcoming Java 14, GA March 2020, already in sid

Issues are 1) in-net updates; 2) plugins.

1) in-net updates su3 is assumed to contain pack200. Logic in ConfigUpdateHandler? will force update to non-su3, non-torrent HTTP .sud download from stats.i2p or echelon.i2p but we haven't created .sud files since the 0.9.22 release in 2015.

We can stop pack200-ing the update in the release process, and remove the above logic; or create two su3's and torrents and update the above logic and news feed.

2) plugins Only fix is to re-release all plugins without pack200

#2686 fixed High CPU, leaks memory zzz jogger

The bug is around runDelayedEvents() looping over _wantsWrite, when closed connections with null _conKey get stuck there forever.

The failsafe code does not catch this. As a quick fix one could loop over _wantsWrite during failsafe to remove closed cons or replace line 821 with

                if ((con = {

Also a list would be more efficient than a hash set. Frequently modified hash maps grow indefinitely large over time even when nearly empty and should be disposed of reqularly.

1 2 3 4 5 6 7 8 9 10 11

See also: TracQuery, TracTickets, TracReports