summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt
Commit message (Collapse)AuthorAgeFilesLines
* mgmt/glusterd: Fix the string to be parsed by the nfs option handler of ↵Kaushik BV2011-08-191-2/+2
| | | | | | | | | | volgen-engine Change-Id: I9e86b472500b59fb220c7589fd00fa9fffdca9c5 BUG: 3414 Reviewed-on: http://review.gluster.com/272 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* mgmt/glusterd: call the nfs option handler at the right placev3.2.3qa3Kaushik BV2011-08-181-14/+26
| | | | | | | | Change-Id: If2b854ede47fa27c0134e6abaccb62dbe2ea8b26 BUG: 3414 Reviewed-on: http://review.gluster.com/255 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* mgmt/Glusterd: Implementation volume set help/help-xmlKaushik BV2011-08-186-64/+429
| | | | | | | Change-Id: I0c54fd1c15550e5e5551e95ed32adb14d8029fab Reviewed-on: http://review.gluster.com/238 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd: fix for volume stop causing inconsistent volume statusKaushal M2011-08-171-1/+4
| | | | | | | | | | | | | This fixes problem caused by race between glusterd and glusterfsd occuring when they try to unlink pidfile during volume stop, which led to the volume being stopped, but the status of the volume remained in started state. Change-Id: Ibf88b61dc66be4ddff9050a0359636675de558a2 BUG: 3147 Reviewed-on: http://review.gluster.com/246 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* Change Copyright current yearPranith Kumar K2011-08-1019-19/+19
| | | | | | | | Change-Id: Id1f1a91cf15d933d5621a0073ddaebe02df0f159 BUG: 3348 Reviewed-on: http://review.gluster.com/198 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* LICENSE: s/GNU Affero General Public/GNU General Public/Pranith Kumar K2011-08-0619-57/+57
| | | | | | | | Change-Id: Ibf5f45431d7a55b70d7304649af652d6f25bb688 BUG: 3348 Reviewed-on: http://review.gluster.com/183 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Removes hardcoding of the transport type in replace-brick operations.Vishwanath S Bhat2011-08-043-21/+69
| | | | | | | | | | | Replace-brick didn't work in volume with rdma transport type. Change-Id: Ib4654bae8aa035050f7e4718c4d29174b7db74b3 BUG: 3092 Testcase: Replace-brick should succeed in volume with rdma transport type. Reviewed-on: http://review.gluster.com/133 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
* glusterd rebalance: handle a race condition while starting a rebalanceAmar Tumballi2011-08-031-2/+1
| | | | | | | | | | | | | due to the race, there was a possibility of having two (or more) threads doing glusterd_defrag_start(), which would cause different thread to access same pointer, and at some point making it NULL, causing other threads to crash with SEGV. Change-Id: Id05b99dd6f33329027b8a07f1c8da5a65fd6dae9 BUG: 3295 Reviewed-on: http://review.gluster.com/139 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* mgmt/glusterd: Ignore case in friend find by hostnamePranith Kumar K2011-08-031-4/+4
| | | | | | | | Change-Id: Id24627b5a59ef21a799b6a4da8cd063966cad3b9 BUG: 3309 Reviewed-on: http://review.gluster.com/146 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* IO-threads: Support for loading io-threads xlator on client sideshishir gowda2011-08-011-1/+5
| | | | | | | | | | | | New set option performance.client-io-threads added to enable/disable it. Default behavior is io-threads is off on client side Loaded only on fuse volume below io-stats. BUG: 3122 Change-Id: I28ddc6db9f26081d0ea5dd6cb895991d8ba29210 Reviewed-on: http://review.gluster.com/135 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd: handle replace-brick in paused state.Krishnan Parthasarathi2011-07-273-26/+95
| | | | | | | | | | | This change ensures that glusterd retains 'state' information of an ongoing replace brick operation even if it went down midway. Change-Id: Ibb161b874468a27cbf35a7ef49e9da5495c4025e BUG: 3252 Reviewed-on: http://review.gluster.com/107 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* mgmt/glusterd: Read the contents of vol-info file into a dynamically alloced ↵Junaid2011-07-242-36/+92
| | | | | | | | | | string. Change-Id: I64d7e143eb4b0fda76a9b97134d0233763a1679a BUG: 3154 Reviewed-on: http://review.gluster.com/71 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pavan T C <tcp@gluster.com>
* Preserve atimes and mtimes during rebalanceHarshavardhana2011-07-231-1/+17
| | | | | | | | | | | | | | | Applications relying on mtime get affected by existing rebalance since it always updates destination file to latest timestamp. - Use utimes to update destination path with existing values from earlier stat call. Change-Id: I809a8d3ca13c5317da66737356c24e82d795ff78 BUG: 3210 Reviewed-on: http://review.gluster.com/74 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd rebalance: handle the write failure properlyAmar Tumballi2011-07-221-10/+53
| | | | | | | | | | | also, make sure the sizes are same before renaming the target file to the original file, hence prevent a possible data-loss. Change-Id: Ie88224ba62a4604f8c0149f84fa462abfbd6ad78 BUG: 3193 Reviewed-on: http://review.gluster.com/27 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd rebalance: use lstat() instead of stat()Amar Tumballi2011-07-191-6/+6
| | | | | | | | | | | | so the symlinks pointing to directories are not considered as directories themself and the control flows outside gluster's scope Change-Id: Iae910ce6c68886d34ae6e5efe46062481b40cd25 BUG: 3191 Reviewed-on: http://review.gluster.com/26 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* mgmt/glusterd: write complete string contained in value in to the volinfo file.Mohammed Junaid Ahmed2011-07-121-4/+8
| | | | | | | | | | | Currently, we are writing 4096 bytes of value variable to the volinfo file irrespective of its lenght, thus tampering with the volinfo file structure. Signed-off-by: Junaid <junaid@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 3154 (glusterd fails to restart) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3154
* glusterd rebalance: mount with '--acl' option for rebalancing.Amar Tumballi2011-07-121-1/+1
| | | | | | | | | | so posix-acl xattrs gets rebalanced too. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 3069 ('gluster rebalance' doesn't preserve any of the extended attributes of the migrated file) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3069
* glusterd rebalance: bring in feature to migrate extended attributes tooAmar Tumballi2011-07-121-0/+61
| | | | | | | | | | | | | currently when a file gets migrated, the extended attributes of the files are getting lost (which should be treated as data-loss). Change-Id: I7068e6b67e614f2016e6eae92c247990ae01e74a Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 3069 ('gluster rebalance' doesn't preserve any of the extended attributes of the migrated file) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3069
* mgmt/glusterd: Set the generic options in the graph before merging it with ↵Junaid2011-06-161-8/+8
| | | | | | | | | | the parent graph while building nfs-server volfile. Signed-off-by: Junaid <junaid@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 3003 (Modification of one of the options of volume is reflected in all the volumes in the nfs-server-volfile) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3003
* nfs:command to change the transport type of nfs server for volumes of ↵Raghavendra Bhat2011-06-084-16/+96
| | | | | | | | | | | transport tcp, rdma Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2294 (Currently there is no way through cli to make a volume listen on both the transports (socket/rdma)) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2294
* fix multiple transport related portmap issues in client handshakeAmar Tumballi2011-06-084-6/+37
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2294 (Currently there is no way through cli to make a volume listen on both the transports (socket/rdma)) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2294
* glusterd: replace brick status grows with dir tree.Krishnan Parthasarathi2011-06-081-1/+1
| | | | | | | | | | | replace-brick status message's size can grow long with deep directory trees. Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2489 (GlusterFS crashing with replace-brick) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2489
* glusterd-volgen: fix rdma volume file path in case of 'tcp, rdma' transport.Amar Tumballi2011-05-311-1/+1
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2952 (if transport type is 'tcp,rdma', rdma volume file path is not proper) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2952
* glusterd: add upgrade/downgrade xlator optionsshishir gowda2011-05-315-2/+80
| | | | | | | | | | | | | If started with upgrade-option, the current behavior is to recreate brick volfiles, as from 3.2 marker xlator is default. downgrade option is not functionally supported. Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2904 (glusterd should have upgrade/downgrade xlator options) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2904
* mgmt/glusterd: Set option listen-backlog to 128Vijay Bellur2011-05-312-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-311-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
* 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