summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt
Commit message (Collapse)AuthorAgeFilesLines
* mgmt/glusterd: Display a warning message to CLI in case of a corrupt geo-rep ↵Kaushik BV2011-05-302-40/+70
| | | | | | | | | | session Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2828 (gluster geo-rep stop should not show unsuccessful when the status is corrupt) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2828
* mgmt/glusterd: Set option listen-backlog to 128Vijay Bellur2011-05-302-0/+17
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* mgmt/glusterd: Start nfs after all bricks are started on glusterd re-startPranith Kumar K2011-05-271-1/+4
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* reimplement invocation of external programs with run APICsaba Henk2011-05-264-264/+234
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2562 (invoke external commands precisely with fork + exec) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2562
* Revert "temporary workaround for mtab update race thingy"Csaba Henk2011-05-262-3/+0
| | | | | | | | | | | | | | | | This reverts commit 59b9ab45a01d52e197ab6f76fd71e64910396d57. [c5d781e0 made this temporary workaround unnecessary] Conflicts: xlators/features/marker/utils/syncdaemon/resource.py Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2690 (race between mtab updates of mount and umount) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2690
* cli log level command and per translator log levelVenky Shankar2011-05-205-12/+321
| | | | | | | | Signed-off-by: Venky Shankar <venky@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2714 (implement cli log level command) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2714
* glusterd: send the duplicate brick info to the cliRaghavendra Bhat2011-05-112-6/+6
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2803 ([glusterfs-3.2.0qa14]: volume create succeeds even though there is a volume with an export directory in the path of current volume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2803
* glusterd / geo-rep: set session owner to the uuid of the master vol instead ↵Csaba Henk2011-05-094-23/+30
| | | | | | | | | | of that of glusterd Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* glusterd / cli / rpc: move geo-replication reply parameters into dictCsaba Henk2011-05-091-27/+5
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* Detect read-only filesystem and fail the brick creation operation.Krishnan Parthasarathi2011-05-091-10/+30
| | | | | | | | Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2609 (Error message not properly provided when trying to create a volume from a read-only source) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2609
* set: Fix incorrect nfs.rpc-auth strings in nfs_option_handlershishir gowda2011-05-091-2/+2
| | | | | | | | Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2866 (volume set for nfs rpc-auth.addr* option succeeds, but vol file not updated) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2866
* glusterd: Checked brick path length in 'staging'.Krishnan Parthasarathi2011-05-045-1/+108
| | | | | | | | | | | Added checks for brick path length in 'staging' of add/replace brick and create_volume subcommands. Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2847 (volume creation fails if brick path is long) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2847
* glusterd: Cleaned up 'store' if vol create fails.Krishnan Parthasarathi2011-05-041-1/+5
| | | | | | | | | | | glusterd's internal 'store' needs to be cleaned up if volume creation operation fails. Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2847 (volume creation fails if brick path is long) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2847
* mgmt/glusterd: Fix ret value in importing of options/gsync slavesPranith Kumar K2011-04-221-1/+1
| | | | | | | | | | | In case the volume options or gsync slaves are absent the import should succeed. Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2832 (peer probe hangs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2832
* mgmt/glusterd: fix up the buffer sizes to accomodate a correct estimate of ↵Kaushik BV2011-04-221-16/+69
| | | | | | | | | | sizes of the snprintf invocations, and errout if not feasible Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2561 (gsyncd command's must be preconfigured) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2561
* cli: check if gsyncd is present in the configured place, enable ↵Kaushik BV2011-04-221-0/+50
| | | | | | | | | | geo-replication if present Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2744 (make geo-replication package friendly) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2744
* glusterd / cli: make the needed changes to let a masterless geo-rep config ↵Csaba Henk2011-04-211-30/+45
| | | | | | | | | | request get thru Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* do not allow create volume or add-brick if given path or any brick is a part ↵Raghavendra Bhat2011-04-211-0/+30
| | | | | | | | | | of either Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2803 ([glusterfs-3.2.0qa14]: volume create succeeds even though there is a volume with an export directory in the path of current volume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2803
* geo-replication: revamp CONFIG commandCsaba Henk2011-04-213-248/+109
| | | | | | | | | | Drop the config_type RPC req field, use just a "subop" key in the param dict. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* glusterd: log the error immedietly after the syscall failureRaghavendra Bhat2011-04-211-2/+4
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2346 (Log message enhancements in GlusterFS - phase 1) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
* glusterd / geo-rep: harvesting further benefits of static gsyncd pre-configCsaba Henk2011-04-191-48/+34
| | | | | | | | | | | | | | | | - log-file does not need to be a reserved option anymore as we wouldn't overwrite the user setting - reimplement glusterd_gsync_get_param_file(): all use cases have now pre-configured values, so instead of putting together the needed pathname by ourselves, we can just get it from gsyncd config - refactor it to a common backend with glusterd_get_canon_url() Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* glusterd / geo-rep: do all gsyncd pre-configuration in glusterd initCsaba Henk2011-04-193-137/+140
| | | | | | | | | | | | | | | | | | | This is made possible by gsyncd config templating, by which session specific settings can be expressed in a generic form. Benefits: - in glusterd we use only generic (rx pattern based) config settings so we don't violate users' freedom to make settigs for their sessions - don't have to invoke gsyncd in excess to prepare a session - we can pre-configure slave side too (relying on the templates and gsyncd service auto-discovery) - much leaner, much more expressive code Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* gsyncd service auto-discoveryCsaba Henk2011-04-191-0/+2
| | | | | | | | | | | If glusterd is running, gsyncd will find it out and adopt related settings automagically (even if started from not by glusterd) Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* cli: implement "system:: getwd" commandCsaba Henk2011-04-192-0/+30
| | | | | | | | Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* mgmt/glusterd: geo-rep: restart-upon-reconfig: don't bail out if the gsync ↵Csaba Henk2011-04-191-2/+4
| | | | | | | | | | session we adjust does not exist Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2777 (geo-replication config setting should have effect on already running sessions) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2777
* mgmt/glusterd: Fix compiler warningPranith Kumar K2011-04-191-1/+0
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2797 ([glusterfs-3.2.0qa13]: peer probe fails with gsync running) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2797
* mgmt/glusterd: Send the gsync sessions that are running to the new peer.Kaushik BV2011-04-192-41/+100
| | | | | | | | Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2797 ([glusterfs-3.2.0qa13]: peer probe fails with gsync running) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2797
* mgmt/glusterd: do not allow replace-brick operations when geo-rep sessions ↵Kaushik BV2011-04-191-0/+18
| | | | | | | | | | are active on this volume. Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2765 (geo-replication should have mercy on brick failure) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2765
* mgmt/glusterd: geo-rep config set/del restarts the geo-rep process so that ↵Kaushik BV2011-04-181-13/+69
| | | | | | | | | | it takes up the new configuration values Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2777 (geo-replication config setting should have effect on already running sessions) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2777
* mgmt/glusterd: change the cli output of geo-rep start/stop to resemble the ↵Kaushik BV2011-04-181-3/+5
| | | | | | | | | | output of volume start/stop Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 1570 (geosync related changes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1570
* cli: UI cleanup for geo-replication commandv3.2.0qa14Kaushik BV2011-04-172-22/+32
| | | | | | | | | | | | | * provide a unified output in case of failure of geo-replication session * provide a better formatting of the output geo-replication status command * update the help option of geo-replication command * fix few typos Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2536 (gsync service introspection) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2536
* mgmt/glusterd : change of syntax of geo-replication commandKaushik BV2011-04-173-229/+94
| | | | | | | | | | | | | | | | | | master is referred as a volume name rather than a URL scheme. old syntax: > volume geo-replication start :vol-foo /bar/boo new syntax: > volume geo-replication start vol-foo /bar/boo Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2786 (Having to prepend geo-replication master vol with colon spoils the UI) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2786
* mgmt/glusterd: unify the geo-replication status rpc messages.Kaushik BV2011-04-171-39/+10
| | | | | | | | | | | the intelligence of determining the type of status command is now at glusterd, rather then explicitly setting it while parsing at cli. Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2536 (gsync service introspection) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2536
* glusterd/volgen: make it possible for builders to set the op_errstr during ↵Csaba Henk2011-04-171-50/+69
| | | | | | | | | | graph validation Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2559 (provide two options in CLI for gluster volume gsync indexing <volname> <enable|disable>) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2559
* glusterd: some cleanups needed for 70adbe7b [refactor gsync_status() ...]Csaba Henk2011-04-171-14/+16
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2780 (geo-replication operations take too much time to complete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2780
* glusterd: refactor gsync_status() so that we can get at the pidfileCsaba Henk2011-04-161-46/+47
| | | | | | | | | | | This is useful for iterated polling of gsyncd's status, without having to incoke gsyncd to find out about the pidfile. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2780 (geo-replication operations take too much time to complete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2780
* mgmt/glusterd: Send the error msg to user if gsync start failsPranith Kumar K2011-04-163-22/+29
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2781 (geo-replication start error message) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2781
* mgmt/glusterd: does not allow disabling of indexing (xtime marking), if a ↵Kaushik BV2011-04-153-5/+63
| | | | | | | | | | gsync session is active. Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2559 (provide two options in CLI for gluster volume gsync indexing <volname> <enable|disable>) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2559
* mgmt/glusterd: handle error condition in quota fs crawlPranith Kumar K2011-04-151-1/+7
| | | | | | | | | | | | Quota enable starts a crawl on the maintenance mount point, but if the chdir to the mount point fails it will start the crawl on '/'. So the child should exit with EXIT_FAILURE when the chdir fails. Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2770 (Handle error cases in quota fs crawl) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2770
* mgmt/glusterd: fix double free.v3.2.0qa13Raghavendra G2011-04-151-3/+11
| | | | | | | | | | | | | - the limit-usage string should be stored as static, since remove-limits will be modifying it and probably freeing it. - this static string should also be explicitly freed in glusterd_quota_disable since dict_del won't free it. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@gluster.com> BUG: 2776 (gluster quota remove crashed glusterd) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2776
* mgmt/glusterd: Memory leak and message cleanupPranith Kumar K2011-04-155-49/+43
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2764 (Cleanup memory leaks seen in quota and gsync code paths) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2764
* glusterd / geo-replication: have gsync's glusterfs client use ↵Csaba Henk2011-04-151-1/+2
| | | | | | | | | | assert-no-child-down for dht volume Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2765 (geo-replication should have mercy on brick failure) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2765
* glusterd / geo-replication: set location of ssh keyfile for gsyncdCsaba Henk2011-04-151-2/+4
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2756 (support for providing custom ssh private key) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2756
* glusterd/volgen: partially revert 50ab0ad4Csaba Henk2011-04-151-80/+53
| | | | | | | | | | | | Moving the adjustment of marker's timestamp file to generation phase was not correct, as generation should be side effect free. Moved it back to the point where volfiles are written. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2529 (Starting Gsync causes ENOTCONN to glusterfs client) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2529
* use "geo-replication" all over as the official name of this featureCsaba Henk2011-04-157-45/+43
| | | | | | | | | | Use GEOREP macro if you want to refer to the feature in code. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2757 (refactory gsync/gsyncd/syncdaemon/whatever to geo-replication) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2757
* glusterd/volgen: refactor some thingsCsaba Henk2011-04-153-61/+76
| | | | | | | | | | | | | | | | - use macros for exported volume tunables - introduce glusterd_volinfo_get_boolean as retrieval of boolean optuions was a recurring pattern and became somewhat cumbersome Also fixed illegal access to volinfo dict. @pranith: use always the glusterd_volinfo_get* API for that purpose so that defaults are taken to consideration. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2757 (refactory gsync/gsyncd/syncdaemon/whatever to geo-replication) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2757
* mgmt/glusterd: restart gsyncd on glusterd restartPranith Kumar K2011-04-145-3/+212
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2761 (Restart gsyncd processes on glusterd restart) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2761
* mgmt/glusterd: Prevent dict unserialize for buf with 0 lengthPranith Kumar K2011-04-141-6/+8
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2753 (perf-test failed with "buf is null!" message) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2753
* mgmt/glusterd: fail the volume stop opeeration if Gsync sessions are active.Kaushik BV2011-04-141-0/+36
| | | | | | | | Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2751 (Volme stop must not be proceeded if gsync sessions are active for the volume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2751
* mgmt/glusterd: Implementation of volume gsync status [master [slave]]Kaushik BV2011-04-147-162/+1131
| | | | | | | | | | | | | | Changes made in the path of gsync start/stop as well, where we maintain a list of active gsync sessions, hence gsync stop could be executed at all nodes. A new dict in glusterd_volinfo_t added to maintain an active list of gsync slaves running on each master. Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2536 (gsync service introspection) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2536