Modify

Opened 8 years ago

Closed 8 years ago

#12114 closed defect (othersoftware)

Memory leak in JOSM

Reported by: naoliv Owned by: team
Priority: major Milestone:
Component: Core Version:
Keywords: Cc:

Description

I was noting that, while I was editing, JOSM was getting slower.
Taking a look at top I saw that JOSM's memory usage was increasing:

VIRT   RES   SHR  MEM%   TIME+  Command
17.3G 7416M 43144 37.9 54:45.82 java -jar josm-latest.jar
17.4G 7625M 43352 38.9 56:46.82 java -jar josm-latest.jar
17.5G 7760M 45340 39.6 57:42.67 java -jar josm-latest.jar

I also noted high CPU spikes while doing simple operations (like creating one node).
Closing JOSM and running it again "fixes" it (until it gets slow again).

What could cause this?
What can I do to help and give more information about this?

JOSM:

Revision: 9017
Repository Root: http://josm.openstreetmap.de/svn
Relative URL: ^/trunk
Last Changed Author: bastiK
Last Changed Date: 2015-11-16 23:07:49 +0100 (Mon, 16 Nov 2015)
Build-Date: 2015-11-17 02:32:33
URL: http://josm.openstreetmap.de/svn/trunk
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last Changed Rev: 9017

Identification: JOSM/1.5 (9017 pt_BR) Linux Debian GNU/Linux testing (stretch)
Memory Usage: 511 MB / 9102 MB (269 MB allocated, but free)
Java version: 1.8.0_72-internal, Oracle Corporation, OpenJDK 64-Bit Server VM
VM arguments: [-Dawt.useSystemAAFontSettings=on]

Plugins:
- Create_grid_of_ways (31603)
- OpeningHoursEditor (31696)
- PicLayer (31694)
- RoadSigns (31694)
- SimplifyArea (31694)
- apache-commons (31718)
- buildings_tools (31694)
- conflation (0.1.8)
- contourmerge (1014)
- download_along (31603)
- editgpx (31603)
- ejml (31756)
- geotools (31755)
- imagery_offset_db (31694)
- importvec (31694)
- jts (31603)
- log4j (31603)
- measurement (31694)
- merge-overlap (31732)
- opendata (31766)
- pbf (31694)
- pdfimport (31694)
- poly (31694)
- reverter (31694)
- scripting (30722)
- todo (29154)
- turnrestrictions (31694)
- undelete (31603)
- utilsplugin2 (31694)

Attachments (1)

hs_err_pid3394.log (75.6 KB ) - added by wiktorn 8 years ago.
hs_err* file generated on debian/unstable

Download all attachments as: .zip

Change History (22)

comment:1 by wiktorn, 8 years ago

Your memory usage looks huge. I was recently fighting with unmotivated high memory usage by imagery layers and I think, that I've nailed all the problems already in [9004].

What I usually use, to debug such situations is to run:
https://eclipse.org/mat/

Memory analysis tool. It connects to running application, dumps memory image, and provides some automated reports (i.e. Suspected leaks) which point to specific objects responsible for high memory usage.

If it's possible, keep the *hprof file (which might be quite huge in your case), but it might be useful for further inspection, who is responsible for memory mismanagement.

comment:2 by naoliv, 8 years ago

Really good to know this.
I will get back tomorrow with the analysis.

comment:3 by Don-vip, 8 years ago

Milestone: 15.11
Priority: normalmajor

let's try to fix it in this milestone.

comment:4 by naoliv, 8 years ago

MAT is more memory hungry than JOSM :-)

It seems to leak while adding nodes.
For example, tracing a wood area I saw that the memory increases (a lot), while JOSM gets slower.

And I need some help of what (and how) I export the reports.

https://i.imgur.com/vb6smiM.jpg

Last edited 8 years ago by stoecker (previous) (diff)

comment:5 by wiktorn, 8 years ago

I received the HPROF file from naoliv. Few observations:

  1. HPROF file is quite big (3.5GB) though Java Heap is quite small (500MB). Looks like quite a lot of memory is allocated offheap (probably by GTK?)
  2. 460 javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode occupy around 300MB of memory
  3. This JTree Nodes come from CommandListMutuableTreeNode (there is also few houndred instances of them)
  4. Each of javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode retains around 1MB of memory
  5. Most of the memory is retained within DefaultMutableTreeNode, where there are Vectors, backed by Object[] arrays

It looks like the undo tree is leaking something here... I'll try to reproduce

Version 0, edited 8 years ago by wiktorn (next)

in reply to:  4 comment:6 by Don-vip, 8 years ago

Replying to naoliv:

:D

comment:7 by wiktorn, 8 years ago

Some further thoughts after trying to reproduce:

  1. I did create empty layer, and made dozens of ways, to get around 500 actions in undo stack
  2. Memory usage was around 66MB (vs 426MB what observed naoliv)
  3. I did not spot any javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode in my dump.
  4. javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode in naoliv dump are allocated in native stack
  5. Each javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode references different instances of javax.swing.tree.DefaultMutableTreeNode (each retains around 1MB heap)

My wild guess is maybe there is some of native libraries is leaking memory. libgtk? libgnome?

@naoliv:
Did you updated your system recently? Can you reinstall all openjdk dependencies? I don't have other suspects for the reason of this behaviour.

comment:8 by naoliv, 8 years ago

Reinstalled the packages and updated related libgtk packages from testing to unstable (in Debian), but I still see the same behavior.
But with ~/.josm renamed the memory issue seems to be gone.

Could some plugin cause this? Some option enabled or disabled in JOSM?

Last edited 8 years ago by naoliv (previous) (diff)

comment:9 by wiktorn, 8 years ago

If starting with fresh ~/.josm helps, then please check if you can reproduce the problem after installing all your plugins.

If this is the case try to bisect plugins to find the one responsible. I don't have yet any idea which one could be twosome.

comment:10 by naoliv, 8 years ago

I've found the culprit.

With a fresh ~/.josm, no plugins nor anything else, but adding these two options in preferences.xml (it really took some time to pinpoint this):

  <tag key='commandstack.minimized' value='true'/>
  <tag key='commandstack.visible' value='true'/>

I can reproduce the same memory problem.
It seems to match what wiktorn saw with the undo stack in my HPROF.

comment:11 by wiktorn, 8 years ago

I tried to reproduce this to no avail.

Java version (just downloaded from Oracle site, 64bit version):

java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

Debian 8.2 (jessie)

JOSM: 9024.

The way I tried to reproduce the problem:

  1. Make sure, that preferences.xml contains commandstack.minimized and commandstack.visible set to true
  2. Run JOSM (-Xmx512m)
  3. Create new layer
  4. Make a dozen of ways, with a lot of nodes, to get ~500 actions in command stack
  5. Verify RES size of application (if it is greater than 512m)
  6. Check heap size using visualvm

For now, my results are, that I see around 300M of RES size, and ~100MB of Java heap usage, that drops to 40MB after GC.

@naoliv:
Where did you got your java runtime? It looks like you're quite ahead (1.8.0_72-internal) of what's published by Oracle (1.8.0_66)

comment:12 by naoliv, 8 years ago

The one provided by Debian:

$ LC_ALL=C apt-cache policy openjdk-8-jre:amd64 
openjdk-8-jre:
  Installed: 8u72-b05-1
  Candidate: 8u72-b05-1
  Version table:
 *** 8u72-b05-1 500
        500 http://httpredir.debian.org/debian unstable/main amd64 Package

Also available at testing.

comment:13 by naoliv, 8 years ago

And just complementing, I also tested with

$ java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.2) (7u91-2.6.2-1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

And I see the same problem.

comment:14 by stoecker, 8 years ago

Could you please provide the minimum config your tried the test with. Sometimes little details are overlooked in descriptions.

comment:15 by naoliv, 8 years ago

I have removed all the ~/.josm dir, started JOSM once (so I could get the default preference file, like below) and closed it, without doing anything:

<?xml version="1.0" encoding="UTF-8"?>
<preferences xmlns="http://josm.openstreetmap.de/preferences-1.0" version="9024">
  <tag key='cache.capabilities1637351842' value='1447966910'/>
  <tag key='cache.motd.html' value='1447966909'/>
  <tag key='cache.motd.html.java' value='1.8.0_72-internal'/>
  <tag key='cache.motd.html.lang' value='Pt_BR:'/>
  <tag key='cache.motd.html.version' value='9024'/>
  <maps key='imagery.entries'>
    <map>
      <tag key='name' value='Imagem aérea do Bing'/>
      <tag key='id' value='Bing'/>
      <tag key='type' value='bing'/>
      <tag key='url' value='http://www.bing.com/maps/'/>
      <tag key='max-zoom' value='22'/>
      <tag key='icon' value='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAdVBMVEX/phX/04r/////6cX/zXz/7Mz/vFD/u0z/1I7/tT3/yXH/uEX/v1f/rCT/2pz/vlP/qRz/4a//yG3/xmn//Pj/9eb/+/T/897/t0H/wl7/sTL//vv/+O3/2Jn/7dD/+vH/9+n/3KT/tDr/9OL/8Nf/26D/ynSCVQVOAAAAkklEQVR4Xq3R1w7DIBQD0NiQne69d///E3tvBYVU6UsVPyEdCYycIOlOv5AB004Aaf6DCpLtF4yxp8tkFMGCkiEkKyGz9qCxrkxuhLIAeaijMvAwi/vMycJDuyi5/AVUaPwTPik5UdCDiWCjtd5Q70TK+KKD26M+6o+tdGxwIlmFPeyZn1yuraFKFOnt/sCz/81f+9UEaf1lPCAAAAAASUVORK5CYII='/>
      <tag key='noTileHeaders' value='{&quot;X-VE-Tile-Info&quot;:&quot;no-tile&quot;}'/>
      <tag key='metadataHeaders' value='{&quot;X-VE-TILEMETA-CaptureDatesRange&quot;:&quot;Capture Date&quot;}'/>
    </map>
    <map>
      <tag key='name' value='MapQuest Open Aerial'/>
      <tag key='id' value='mapquest-oa'/>
      <tag key='type' value='tms'/>
      <tag key='url' value='http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png'/>
      <tag key='attribution-text' value='Tiles Courtesy of MapQuest. Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'/>
      <tag key='attribution-url' value='http://open.mapquest.com/'/>
      <tag key='icon' value='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD9QTFRFAAAAi8ZBi8ZBi8ZBi8ZBkslMmc1YoNBkqNRwr9d8ttuIvd6UxeKgzOar0+m32u3D4vDP6fTb8Pfn9/vz////1BI4LwAAAAR0Uk5TAF+fzylxRuMAAADBSURBVDjLxZPRDoMgDEVVClRlgML/f+tKUTLNgGV72H0okXskLbTD8IFGAW8lxuxPUNXE/0ND6QzRAgQB0NS3gEbEBjDvkRSWGoDx0FwB3An4CrCRZ0wiKkC27oDSOX0F4MlyNqVZAMmfVvNi7JmDK4CPrypJbvIA1MWPATdeYlwPgAvPmxw1SEQpnTtPMFzzg68mEXh/iwwYtvyfgIU2d5kAy8AKJlwAKor6I0UNKsfl15a7AN227w5Od/T6w9vWE6pGGxHVqV03AAAAAElFTkSuQmCC'/>
      <tag key='noTileHeaders' value='{&quot;ETag&quot;:&quot;.*?:OC4CjEZcEJv8Az5u7fOqgEP\\+NpkA\&quot;&quot;}'/>
    </map>
    <map>
      <tag key='name' value='OpenStreetMap (Mapnik Branco &amp; Preto)'/>
      <tag key='id' value='osm-mapnik-black_and_white'/>
      <tag key='type' value='tms'/>
      <tag key='url' value='http://{switch:a,b,c}.www.toolserver.org/tiles/bw-mapnik/{zoom}/{x}/{y}.png'/>
      <tag key='attribution-text' value='© OpenStreetMap contributors, CC-BY-SA'/>
      <tag key='attribution-url' value='https://openstreetmap.org/'/>
      <tag key='max-zoom' value='18'/>
      <tag key='icon' value='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADJElEQVR4Xo2SS2hcZRSAv/+//70zkzszeU+okVqaaGLjI0akTRGl3ehGdCEiutO6c6PgwoWCSMUXdRFaCurGTRGVUtqNraKmTDA1KtIQzat3TKczSW0mznTuzNznL1zoxo1+q3PgwPnOA8cufVU647y+PnYps6Wq9lbfxvTiqdnzs+/PH7re/bY6nV7tqT5UmanOkUDJcN5w9BW9phcuXDtW/bqy7ejfdVH/qhd0cfXsO9998VN5Xq/qTffaAwACnGl9VvcHePSiaOMidSzWdb+wsRG0CLmhc8E9r/YcbyNgqZA6w4E6ETksoI3gIofIYCCT3KPD39z49OkjIGHf9aikyWFyE4EgzwoHyJFBoQmxsAmQyH1TAyABrMDCJIvCI2Ibk24kYGCTIwXksbD3P3sYDCjtMV8xhsACJHXK5BjCRBMQ0CbAxUdpQ27Xrp5XYI7oEYgQ+IBHjKBDkOiZSJqESGLSZMYOWrJEPK67NDEtIhpoTAQxMRDSpE4H0AgUSkhkaPmTAaGGJiYWWSxCOmgU0CaEpI9Bmmj1+0AthnvXMwRCEBPSh4ekSh8dBNBFAChSZESD8i9LsXxKr/wRNWWy/XTi2sO3rBGjk2lMUqSTLa3+eHJuzJIwX/bLApOYiE4y/F18xNUkInG3iFjxi5/vVJSU6FMld9NHYLCDxqPKEoqPuUQjubLLNgtsmIcnXB1HCso1qyYJiMmzwSdY9PIww2zRhUEOjYsgJ8zhXtnyFXzT218IscizzHHcROsxdhPzFzdxsBDkGYjW13bcQqhgdCS+s0MWhxPUCTCZIotAspeYCgoPqZve5SKtZSQ0RrwhmyvMUMFF8TjTFPBJ4REyiEaAiN2jP6BBzqjOhMEi7+HQIstzyada9BFqQ9u4eFpphe+wCaAMM9q1HB41POGzixe4H7d18cJAauJgd75JiIkpDOq1y1+SAAa3vXvkrcZ4PFZ7bf3k7Itvsp9hbufBl14+fe7nP8/NfXDi0ee5l25uUUTc8eFnT/42esx+gmEMbiGxGUyO/G+mcnseue+ZycmpDP+PAneb4+lRA2D3f9T+A2BEVdbaZSWbAAAAAElFTkSuQmCC'/>
    </map>
    <map>
      <tag key='name' value='OpenStreetMap (Standard layer)'/>
      <tag key='id' value='standard'/>
      <tag key='type' value='tms'/>
      <tag key='url' value='https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png'/>
      <tag key='attribution-text' value='© OpenStreetMap contributors, CC-BY-SA'/>
      <tag key='attribution-url' value='https://openstreetmap.org/'/>
      <tag key='max-zoom' value='19'/>
      <tag key='icon' value='data:image/png;base64,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'/>
    </map>
    <map>
      <tag key='name' value='Satélite Mapbox'/>
      <tag key='id' value='Mapbox'/>
      <tag key='type' value='tms'/>
      <tag key='url' value='http://{switch:a,b,c}.tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw'/>
      <tag key='max-zoom' value='19'/>
      <tag key='icon' value='data:image/png;base64,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YmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzE8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFjb3JuIHZlcnNpb24gMy41PC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgqb9JbbAAAGd0lEQVRIDX1We4xVRxn/zZzXfd9l9+7efcCy9LqsYFtAAVHTFaQtrba1plltDKVRUfoHxeCDBE0FTI3+gTXWxkRNUVpNWtbExDSUlhQW2kKjDZWHCyzs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'/>
      <tag key='noTileHeaders' value='{&quot;ETag&quot;:&quot;\&quot;067736a547cafe90014b4e59b6510abe\&quot;&quot;}'/>
    </map>
  </maps>
  <list key='imagery.layers.addedIds'>
    <entry value='Bing'/>
    <entry value='Mapbox'/>
    <entry value='mapquest-oa'/>
    <entry value='osm-mapnik-black_and_white'/>
    <entry value='standard'/>
  </list>
  <list key='imagery.layers.default'>
    <entry value='http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png'/>
    <entry value='http://www.bing.com/maps/'/>
    <entry value='http://{switch:a,b,c}.tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw'/>
    <entry value='http://{switch:a,b,c}.www.toolserver.org/tiles/bw-mapnik/{zoom}/{x}/{y}.png'/>
    <entry value='https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png'/>
  </list>
  <tag key='mappaint.renderer-class-name' value='org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer'/>
  <list key='mappaint.style.known-defaults'>
    <entry value='resource://styles/standard/elemstyles.mapcss'/>
    <entry value='resource://styles/standard/potlatch2.mapcss'/>
  </list>
  <list key='mirror.https://josm.openstreetmap.de/maps'>
    <entry value='1447966911453'/>
    <entry value='/home/naoliv/.josm/cache/mirror_https___josm.openstreetmap.de_maps'/>
  </list>
  <tag key='validated.ipv6' value='true'/>
</preferences>

Then edited preferences.xml and inserted the two commandstack lines after cache.motd.html.version:

<?xml version="1.0" encoding="UTF-8"?>
<preferences xmlns="http://josm.openstreetmap.de/preferences-1.0" version="9024">
  <tag key='cache.capabilities1637351842' value='1447966910'/>
  <tag key='cache.motd.html' value='1447966909'/>
  <tag key='cache.motd.html.java' value='1.8.0_72-internal'/>
  <tag key='cache.motd.html.lang' value='Pt_BR:'/>
  <tag key='cache.motd.html.version' value='9024'/>
  <tag key='commandstack.minimized' value='true'/>
  <tag key='commandstack.visible' value='true'/>
  <maps key='imagery.entries'>
(...)

And then started JOSM again, created an empty layer and started to draw some ways.

Last edited 8 years ago by naoliv (previous) (diff)

comment:16 by wiktorn, 8 years ago

Ok, with freshly installed Debian sid (unstable) I am able to reproduce the problem. Having command stack of 236 commands, I see RES size of 1g (though I had -Xmx512m) and I see major slowdown of node creation.

Looks like Debian/GNOME/GTK problem to me.

by wiktorn, 8 years ago

Attachment: hs_err_pid3394.log added

hs_err* file generated on debian/unstable

comment:17 by wiktorn, 8 years ago

And one more thing. Running JOSM on Debian sid/unstable, but using Oracle JDK (downloaded from Oracle webpage):

java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

I can not reproduce the bug

comment:18 by bastiK, 8 years ago

Oh, what fun, "write once, debug everywhere".

in reply to:  18 comment:19 by wiktorn, 8 years ago

Replying to bastiK:

Oh, what fun, "write once, debug everywhere".

After checking debian package structure, I'm quite convinced, that this is Java bug introduced somewhere between 65b17 and 72b05.

I'll try later to fill a report to Oracle with some unit test.

comment:20 by Don-vip, 8 years ago

Milestone: 15.11

comment:21 by wiktorn, 8 years ago

Resolution: othersoftware
Status: newclosed

I failed to create small unit test that would show the case.

But I've tried building openjdk on my own on, using sources provided for Debian/stretch (apt-get source openjdk-8-jdk).

To my surprise, it works, but only if I do not use binaries generated for packages, but straight from the build process (build/images/j2sdk-image/).

I've reported this to Debian under:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806563

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
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.