autobuild v6.0-27
Resolves: bz#1789447 Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
This commit is contained in:
parent
61de5f4d9d
commit
9d5f2fefff
236
0347-tools-glusterfind-handle-offline-bricks.patch
Normal file
236
0347-tools-glusterfind-handle-offline-bricks.patch
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
From 87e6ea2cd63898c5d243b0f0c719f4f6347fb829 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Milind Changire <mchangir@redhat.com>
|
||||||
|
Date: Thu, 5 Jan 2017 19:53:19 +0530
|
||||||
|
Subject: [PATCH 347/349] tools/glusterfind: handle offline bricks
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
glusterfind is unable to copy remote output file to local node when a
|
||||||
|
remove-brick is in progress on the remote node. After copying remote
|
||||||
|
files, in the --full output listing path, a "sort -u" command is run on
|
||||||
|
the collected files. However, "sort" exits with an error code if it
|
||||||
|
finds any file missing.
|
||||||
|
|
||||||
|
Solution:
|
||||||
|
Maintain a map of (pid, output file) when the node commands are started
|
||||||
|
and remove the mapping for the pid for which the command returns an
|
||||||
|
error. Use the list of files present in the map for the "sort" command.
|
||||||
|
|
||||||
|
Backport of:
|
||||||
|
> Patch: https://review.gluster.org/16332
|
||||||
|
> Change-Id: Ie6e019037379f4cb163f24b1c65eb382efc2fb3b
|
||||||
|
> fixes: bz#1410439
|
||||||
|
> Signed-off-by: Milind Changire <mchangir@redhat.com>
|
||||||
|
> Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
|
||||||
|
|
||||||
|
BUG: 1789447
|
||||||
|
Change-Id: Ie6e019037379f4cb163f24b1c65eb382efc2fb3b
|
||||||
|
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
Reviewed-on: https://code.engineering.redhat.com/gerrit/189214
|
||||||
|
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||||
|
Reviewed-by: Sunny Kumar <sunkumar@redhat.com>
|
||||||
|
---
|
||||||
|
tools/glusterfind/src/gfind_py2py3.py | 25 ++++++++++++++
|
||||||
|
tools/glusterfind/src/main.py | 61 +++++++++++++++++++++--------------
|
||||||
|
2 files changed, 61 insertions(+), 25 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/glusterfind/src/gfind_py2py3.py b/tools/glusterfind/src/gfind_py2py3.py
|
||||||
|
index 1d41ec5..87324fb 100644
|
||||||
|
--- a/tools/glusterfind/src/gfind_py2py3.py
|
||||||
|
+++ b/tools/glusterfind/src/gfind_py2py3.py
|
||||||
|
@@ -40,6 +40,19 @@ if sys.version_info >= (3,):
|
||||||
|
def gfind_history_changelog_done(libgfc, clfile):
|
||||||
|
return libgfc.gf_history_changelog_done(clfile.encode())
|
||||||
|
|
||||||
|
+ def gfind_write_row(f, row, field_separator, p_rep, row_2_rep):
|
||||||
|
+ f.write(u"{0}{1}{2}{3}{4}\n".format(row,
|
||||||
|
+ field_separator,
|
||||||
|
+ p_rep,
|
||||||
|
+ field_separator,
|
||||||
|
+ row_2_rep))
|
||||||
|
+
|
||||||
|
+ def gfind_write(f, row, field_separator, p_rep):
|
||||||
|
+ f.write(u"{0}{1}{2}\n".format(row,
|
||||||
|
+ field_separator,
|
||||||
|
+ p_rep))
|
||||||
|
+
|
||||||
|
+
|
||||||
|
else:
|
||||||
|
|
||||||
|
# Raw conversion of bytearray to string
|
||||||
|
@@ -61,3 +74,15 @@ else:
|
||||||
|
|
||||||
|
def gfind_history_changelog_done(libgfc, clfile):
|
||||||
|
return libgfc.gf_history_changelog_done(clfile)
|
||||||
|
+
|
||||||
|
+ def gfind_write_row(f, row, field_separator, p_rep, row_2_rep):
|
||||||
|
+ f.write(u"{0}{1}{2}{3}{4}\n".format(row,
|
||||||
|
+ field_separator,
|
||||||
|
+ p_rep,
|
||||||
|
+ field_separator,
|
||||||
|
+ row_2_rep).encode())
|
||||||
|
+
|
||||||
|
+ def gfind_write(f, row, field_separator, p_rep):
|
||||||
|
+ f.write(u"{0}{1}{2}\n".format(row,
|
||||||
|
+ field_separator,
|
||||||
|
+ p_rep).encode())
|
||||||
|
diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py
|
||||||
|
index cc5a86f..fefe4a3 100644
|
||||||
|
--- a/tools/glusterfind/src/main.py
|
||||||
|
+++ b/tools/glusterfind/src/main.py
|
||||||
|
@@ -16,6 +16,7 @@ from multiprocessing import Process
|
||||||
|
import os
|
||||||
|
import xml.etree.cElementTree as etree
|
||||||
|
from argparse import ArgumentParser, RawDescriptionHelpFormatter, Action
|
||||||
|
+from gfind_py2py3 import gfind_write_row, gfind_write
|
||||||
|
import logging
|
||||||
|
import shutil
|
||||||
|
import tempfile
|
||||||
|
@@ -35,9 +36,9 @@ GlusterFS Incremental API
|
||||||
|
ParseError = etree.ParseError if hasattr(etree, 'ParseError') else SyntaxError
|
||||||
|
|
||||||
|
logger = logging.getLogger()
|
||||||
|
-node_outfiles = []
|
||||||
|
vol_statusStr = ""
|
||||||
|
gtmpfilename = None
|
||||||
|
+g_pid_nodefile_map = {}
|
||||||
|
|
||||||
|
|
||||||
|
class StoreAbsPath(Action):
|
||||||
|
@@ -111,7 +112,7 @@ def node_cmd(host, host_uuid, task, cmd, args, opts):
|
||||||
|
|
||||||
|
|
||||||
|
def run_cmd_nodes(task, args, **kwargs):
|
||||||
|
- global node_outfiles
|
||||||
|
+ global g_pid_nodefile_map
|
||||||
|
nodes = get_nodes(args.volume)
|
||||||
|
pool = []
|
||||||
|
for num, node in enumerate(nodes):
|
||||||
|
@@ -142,7 +143,6 @@ def run_cmd_nodes(task, args, **kwargs):
|
||||||
|
if tag == "":
|
||||||
|
tag = '""' if not is_host_local(host_uuid) else ""
|
||||||
|
|
||||||
|
- node_outfiles.append(node_outfile)
|
||||||
|
# remote file will be copied into this directory
|
||||||
|
mkdirp(os.path.dirname(node_outfile),
|
||||||
|
exit_on_err=True, logger=logger)
|
||||||
|
@@ -180,7 +180,6 @@ def run_cmd_nodes(task, args, **kwargs):
|
||||||
|
if tag == "":
|
||||||
|
tag = '""' if not is_host_local(host_uuid) else ""
|
||||||
|
|
||||||
|
- node_outfiles.append(node_outfile)
|
||||||
|
# remote file will be copied into this directory
|
||||||
|
mkdirp(os.path.dirname(node_outfile),
|
||||||
|
exit_on_err=True, logger=logger)
|
||||||
|
@@ -264,6 +263,7 @@ def run_cmd_nodes(task, args, **kwargs):
|
||||||
|
args=(host, host_uuid, task, cmd, args, opts))
|
||||||
|
p.start()
|
||||||
|
pool.append(p)
|
||||||
|
+ g_pid_nodefile_map[p.pid] = node_outfile
|
||||||
|
|
||||||
|
for num, p in enumerate(pool):
|
||||||
|
p.join()
|
||||||
|
@@ -271,8 +271,11 @@ def run_cmd_nodes(task, args, **kwargs):
|
||||||
|
logger.warn("Command %s failed in %s" % (task, nodes[num][1]))
|
||||||
|
if task in ["create", "delete"]:
|
||||||
|
fail("Command %s failed in %s" % (task, nodes[num][1]))
|
||||||
|
- elif task == "pre" and args.disable_partial:
|
||||||
|
- sys.exit(1)
|
||||||
|
+ elif task == "pre" or task == "query":
|
||||||
|
+ if args.disable_partial:
|
||||||
|
+ sys.exit(1)
|
||||||
|
+ else:
|
||||||
|
+ del g_pid_nodefile_map[p.pid]
|
||||||
|
|
||||||
|
|
||||||
|
@cache_output
|
||||||
|
@@ -512,16 +515,10 @@ def write_output(outfile, outfilemerger, field_separator):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if row_2_rep and row_2_rep != "":
|
||||||
|
- f.write(u"{0}{1}{2}{3}{4}\n".format(row[0],
|
||||||
|
- field_separator,
|
||||||
|
- p_rep,
|
||||||
|
- field_separator,
|
||||||
|
- row_2_rep).encode())
|
||||||
|
- else:
|
||||||
|
- f.write(u"{0}{1}{2}\n".format(row[0],
|
||||||
|
- field_separator,
|
||||||
|
- p_rep).encode())
|
||||||
|
+ gfind_write_row(f, row[0], field_separator, p_rep, field_separator, row_2_rep)
|
||||||
|
|
||||||
|
+ else:
|
||||||
|
+ gfind_write(f, row[0], field_separator, p_rep)
|
||||||
|
|
||||||
|
def mode_create(session_dir, args):
|
||||||
|
logger.debug("Init is called - Session: %s, Volume: %s"
|
||||||
|
@@ -571,6 +568,7 @@ def mode_create(session_dir, args):
|
||||||
|
|
||||||
|
def mode_query(session_dir, args):
|
||||||
|
global gtmpfilename
|
||||||
|
+ global g_pid_nodefile_map
|
||||||
|
|
||||||
|
# Verify volume status
|
||||||
|
cmd = ["gluster", 'volume', 'info', args.volume, "--xml"]
|
||||||
|
@@ -634,14 +632,20 @@ def mode_query(session_dir, args):
|
||||||
|
|
||||||
|
# Merger
|
||||||
|
if args.full:
|
||||||
|
- cmd = ["sort", "-u"] + node_outfiles + ["-o", args.outfile]
|
||||||
|
- execute(cmd,
|
||||||
|
- exit_msg="Failed to merge output files "
|
||||||
|
- "collected from nodes", logger=logger)
|
||||||
|
+ if len(g_pid_nodefile_map) > 0:
|
||||||
|
+ cmd = ["sort", "-u"] + g_pid_nodefile_map.values() + \
|
||||||
|
+ ["-o", args.outfile]
|
||||||
|
+ execute(cmd,
|
||||||
|
+ exit_msg="Failed to merge output files "
|
||||||
|
+ "collected from nodes", logger=logger)
|
||||||
|
+ else:
|
||||||
|
+ fail("Failed to collect any output files from peers. "
|
||||||
|
+ "Looks like all bricks are offline.", logger=logger)
|
||||||
|
else:
|
||||||
|
# Read each Changelogs db and generate finaldb
|
||||||
|
create_file(args.outfile, exit_on_err=True, logger=logger)
|
||||||
|
- outfilemerger = OutputMerger(args.outfile + ".db", node_outfiles)
|
||||||
|
+ outfilemerger = OutputMerger(args.outfile + ".db",
|
||||||
|
+ g_pid_nodefile_map.values())
|
||||||
|
write_output(args.outfile, outfilemerger, args.field_separator)
|
||||||
|
|
||||||
|
try:
|
||||||
|
@@ -656,6 +660,7 @@ def mode_query(session_dir, args):
|
||||||
|
|
||||||
|
def mode_pre(session_dir, args):
|
||||||
|
global gtmpfilename
|
||||||
|
+ global g_pid_nodefile_map
|
||||||
|
|
||||||
|
"""
|
||||||
|
Read from Session file and write to session.pre file
|
||||||
|
@@ -696,14 +701,20 @@ def mode_pre(session_dir, args):
|
||||||
|
|
||||||
|
# Merger
|
||||||
|
if args.full:
|
||||||
|
- cmd = ["sort", "-u"] + node_outfiles + ["-o", args.outfile]
|
||||||
|
- execute(cmd,
|
||||||
|
- exit_msg="Failed to merge output files "
|
||||||
|
- "collected from nodes", logger=logger)
|
||||||
|
+ if len(g_pid_nodefile_map) > 0:
|
||||||
|
+ cmd = ["sort", "-u"] + g_pid_nodefile_map.values() + \
|
||||||
|
+ ["-o", args.outfile]
|
||||||
|
+ execute(cmd,
|
||||||
|
+ exit_msg="Failed to merge output files "
|
||||||
|
+ "collected from nodes", logger=logger)
|
||||||
|
+ else:
|
||||||
|
+ fail("Failed to collect any output files from peers. "
|
||||||
|
+ "Looks like all bricks are offline.", logger=logger)
|
||||||
|
else:
|
||||||
|
# Read each Changelogs db and generate finaldb
|
||||||
|
create_file(args.outfile, exit_on_err=True, logger=logger)
|
||||||
|
- outfilemerger = OutputMerger(args.outfile + ".db", node_outfiles)
|
||||||
|
+ outfilemerger = OutputMerger(args.outfile + ".db",
|
||||||
|
+ g_pid_nodefile_map.values())
|
||||||
|
write_output(args.outfile, outfilemerger, args.field_separator)
|
||||||
|
|
||||||
|
try:
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
113
0348-glusterfind-Fix-py2-py3-issues.patch
Normal file
113
0348-glusterfind-Fix-py2-py3-issues.patch
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
From 1ca8a545833e0a6e674984245338b8675ddc58bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kotresh HR <khiremat@redhat.com>
|
||||||
|
Date: Fri, 10 Jan 2020 16:48:14 +0530
|
||||||
|
Subject: [PATCH 348/349] glusterfind: Fix py2/py3 issues
|
||||||
|
|
||||||
|
1. In dictionary values(), returns list in py2 and not in py3.
|
||||||
|
So explicitly convert it into list.
|
||||||
|
2. xattr module returns values in bytes. So explicitly convert
|
||||||
|
them to str to work both with py2 and py3
|
||||||
|
|
||||||
|
Backport of:
|
||||||
|
> Patch: https://review.gluster.org/23993
|
||||||
|
> fixes: bz#1789439
|
||||||
|
> Change-Id: I27a639cda4f7a4ece9744a97c3d16e247906bd94
|
||||||
|
> Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
|
||||||
|
BUG: 1789447
|
||||||
|
Change-Id: I27a639cda4f7a4ece9744a97c3d16e247906bd94
|
||||||
|
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
Reviewed-on: https://code.engineering.redhat.com/gerrit/189215
|
||||||
|
Reviewed-by: Shwetha Acharya <sacharya@redhat.com>
|
||||||
|
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||||
|
Reviewed-by: Hari Gowtham Gopal <hgowtham@redhat.com>
|
||||||
|
Reviewed-by: Sunny Kumar <sunkumar@redhat.com>
|
||||||
|
---
|
||||||
|
tools/glusterfind/src/changelog.py | 14 +++++++++-----
|
||||||
|
tools/glusterfind/src/main.py | 8 ++++----
|
||||||
|
2 files changed, 13 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/glusterfind/src/changelog.py b/tools/glusterfind/src/changelog.py
|
||||||
|
index d8f97e0..d972fb5 100644
|
||||||
|
--- a/tools/glusterfind/src/changelog.py
|
||||||
|
+++ b/tools/glusterfind/src/changelog.py
|
||||||
|
@@ -14,6 +14,7 @@ import sys
|
||||||
|
import time
|
||||||
|
import xattr
|
||||||
|
import logging
|
||||||
|
+from gfind_py2py3 import bytearray_to_str
|
||||||
|
from argparse import ArgumentParser, RawDescriptionHelpFormatter
|
||||||
|
import hashlib
|
||||||
|
try:
|
||||||
|
@@ -105,9 +106,10 @@ def populate_pgfid_and_inodegfid(brick, changelog_data):
|
||||||
|
changelog_data.inodegfid_add(os.stat(p).st_ino, gfid)
|
||||||
|
file_xattrs = xattr.list(p)
|
||||||
|
for x in file_xattrs:
|
||||||
|
- if x.startswith("trusted.pgfid."):
|
||||||
|
+ x_str = bytearray_to_str(x)
|
||||||
|
+ if x_str.startswith("trusted.pgfid."):
|
||||||
|
# PGFID in pgfid table
|
||||||
|
- changelog_data.pgfid_add(x.split(".")[-1])
|
||||||
|
+ changelog_data.pgfid_add(x_str.split(".")[-1])
|
||||||
|
except (IOError, OSError):
|
||||||
|
# All OS Errors ignored, since failures will be logged
|
||||||
|
# in End. All GFIDs present in gfidpath table
|
||||||
|
@@ -122,10 +124,12 @@ def enum_hard_links_using_gfid2path(brick, gfid, args):
|
||||||
|
try:
|
||||||
|
file_xattrs = xattr.list(p)
|
||||||
|
for x in file_xattrs:
|
||||||
|
- if x.startswith("trusted.gfid2path."):
|
||||||
|
+ x_str = bytearray_to_str(x)
|
||||||
|
+ if x_str.startswith("trusted.gfid2path."):
|
||||||
|
# get the value for the xattr i.e. <PGFID>/<BN>
|
||||||
|
- v = xattr.getxattr(p, x)
|
||||||
|
- pgfid, bn = v.split(os.sep)
|
||||||
|
+ v = xattr.getxattr(p, x_str)
|
||||||
|
+ v_str = bytearray_to_str(v)
|
||||||
|
+ pgfid, bn = v_str.split(os.sep)
|
||||||
|
try:
|
||||||
|
path = symlink_gfid_to_path(brick, pgfid)
|
||||||
|
fullpath = os.path.join(path, bn)
|
||||||
|
diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py
|
||||||
|
index fefe4a3..dfc9d07 100644
|
||||||
|
--- a/tools/glusterfind/src/main.py
|
||||||
|
+++ b/tools/glusterfind/src/main.py
|
||||||
|
@@ -633,7 +633,7 @@ def mode_query(session_dir, args):
|
||||||
|
# Merger
|
||||||
|
if args.full:
|
||||||
|
if len(g_pid_nodefile_map) > 0:
|
||||||
|
- cmd = ["sort", "-u"] + g_pid_nodefile_map.values() + \
|
||||||
|
+ cmd = ["sort", "-u"] + list(g_pid_nodefile_map.values()) + \
|
||||||
|
["-o", args.outfile]
|
||||||
|
execute(cmd,
|
||||||
|
exit_msg="Failed to merge output files "
|
||||||
|
@@ -645,7 +645,7 @@ def mode_query(session_dir, args):
|
||||||
|
# Read each Changelogs db and generate finaldb
|
||||||
|
create_file(args.outfile, exit_on_err=True, logger=logger)
|
||||||
|
outfilemerger = OutputMerger(args.outfile + ".db",
|
||||||
|
- g_pid_nodefile_map.values())
|
||||||
|
+ list(g_pid_nodefile_map.values()))
|
||||||
|
write_output(args.outfile, outfilemerger, args.field_separator)
|
||||||
|
|
||||||
|
try:
|
||||||
|
@@ -702,7 +702,7 @@ def mode_pre(session_dir, args):
|
||||||
|
# Merger
|
||||||
|
if args.full:
|
||||||
|
if len(g_pid_nodefile_map) > 0:
|
||||||
|
- cmd = ["sort", "-u"] + g_pid_nodefile_map.values() + \
|
||||||
|
+ cmd = ["sort", "-u"] + list(g_pid_nodefile_map.values()) + \
|
||||||
|
["-o", args.outfile]
|
||||||
|
execute(cmd,
|
||||||
|
exit_msg="Failed to merge output files "
|
||||||
|
@@ -714,7 +714,7 @@ def mode_pre(session_dir, args):
|
||||||
|
# Read each Changelogs db and generate finaldb
|
||||||
|
create_file(args.outfile, exit_on_err=True, logger=logger)
|
||||||
|
outfilemerger = OutputMerger(args.outfile + ".db",
|
||||||
|
- g_pid_nodefile_map.values())
|
||||||
|
+ list(g_pid_nodefile_map.values()))
|
||||||
|
write_output(args.outfile, outfilemerger, args.field_separator)
|
||||||
|
|
||||||
|
try:
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
56
0349-glusterfind-python3-compatibility.patch
Normal file
56
0349-glusterfind-python3-compatibility.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 1354a492cbc758f9801568153380ca896fab7765 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sunny Kumar <sunkumar@redhat.com>
|
||||||
|
Date: Fri, 10 Jan 2020 14:28:35 +0000
|
||||||
|
Subject: [PATCH 349/349] glusterfind: python3 compatibility
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
While we delete gluster volume the hook script 'S57glusterfind-delete-post.py'
|
||||||
|
is failed to execute and error message can be observed in glusterd log.
|
||||||
|
|
||||||
|
Traceback:
|
||||||
|
File "/var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post", line 69, in <module>
|
||||||
|
main()
|
||||||
|
File "/var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post", line 39, in main
|
||||||
|
glusterfind_dir = os.path.join(get_glusterd_workdir(), "glusterfind")
|
||||||
|
File "/usr/lib64/python3.7/posixpath.py", line 94, in join
|
||||||
|
genericpath._check_arg_types('join', a, *p)
|
||||||
|
File "/usr/lib64/python3.7/genericpath.py", line 155, in _check_arg_types
|
||||||
|
raise TypeError("Can't mix strings and bytes in path components") from None
|
||||||
|
TypeError: Can't mix strings and bytes in path components
|
||||||
|
|
||||||
|
Solution:
|
||||||
|
|
||||||
|
Added the 'universal_newlines' flag to Popen to support backward compatibility.
|
||||||
|
|
||||||
|
Backport of:
|
||||||
|
> Patch: https://review.gluster.org/23994
|
||||||
|
> Change-Id: Ie5655b11b55535c5ad2338108d0448e6fdaacf4f
|
||||||
|
> Fixes: bz#1789478
|
||||||
|
> Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
||||||
|
|
||||||
|
Change-Id: Ie5655b11b55535c5ad2338108d0448e6fdaacf4f
|
||||||
|
BUG: 1789447
|
||||||
|
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
||||||
|
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
Reviewed-on: https://code.engineering.redhat.com/gerrit/189216
|
||||||
|
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||||
|
---
|
||||||
|
tools/glusterfind/S57glusterfind-delete-post.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/glusterfind/S57glusterfind-delete-post.py b/tools/glusterfind/S57glusterfind-delete-post.py
|
||||||
|
index 5b5142d..5beece2 100755
|
||||||
|
--- a/tools/glusterfind/S57glusterfind-delete-post.py
|
||||||
|
+++ b/tools/glusterfind/S57glusterfind-delete-post.py
|
||||||
|
@@ -18,7 +18,7 @@ def handle_rm_error(func, path, exc_info):
|
||||||
|
|
||||||
|
def get_glusterd_workdir():
|
||||||
|
p = Popen(["gluster", "system::", "getwd"],
|
||||||
|
- stdout=PIPE, stderr=PIPE)
|
||||||
|
+ stdout=PIPE, stderr=PIPE, universal_newlines=True)
|
||||||
|
|
||||||
|
out, _ = p.communicate()
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -231,7 +231,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
|
|||||||
%else
|
%else
|
||||||
Name: glusterfs
|
Name: glusterfs
|
||||||
Version: 6.0
|
Version: 6.0
|
||||||
Release: 26%{?dist}
|
Release: 27%{?dist}
|
||||||
ExcludeArch: i686
|
ExcludeArch: i686
|
||||||
%endif
|
%endif
|
||||||
License: GPLv2 or LGPLv3+
|
License: GPLv2 or LGPLv3+
|
||||||
@ -655,6 +655,9 @@ Patch0343: 0343-extras-hooks-syntactical-errors-in-SELinux-hooks-sci.patch
|
|||||||
Patch0344: 0344-Revert-all-fixes-to-include-SELinux-hook-scripts.patch
|
Patch0344: 0344-Revert-all-fixes-to-include-SELinux-hook-scripts.patch
|
||||||
Patch0345: 0345-read-ahead-io-cache-turn-off-by-default.patch
|
Patch0345: 0345-read-ahead-io-cache-turn-off-by-default.patch
|
||||||
Patch0346: 0346-fuse-degrade-logging-of-write-failure-to-fuse-device.patch
|
Patch0346: 0346-fuse-degrade-logging-of-write-failure-to-fuse-device.patch
|
||||||
|
Patch0347: 0347-tools-glusterfind-handle-offline-bricks.patch
|
||||||
|
Patch0348: 0348-glusterfind-Fix-py2-py3-issues.patch
|
||||||
|
Patch0349: 0349-glusterfind-python3-compatibility.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
GlusterFS is a distributed file-system capable of scaling to several
|
GlusterFS is a distributed file-system capable of scaling to several
|
||||||
@ -2382,6 +2385,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 13 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-27
|
||||||
|
- fixes bugs bz#1789447
|
||||||
|
|
||||||
* Fri Jan 10 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-26
|
* Fri Jan 10 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-26
|
||||||
- fixes bugs bz#1763208 bz#1788656
|
- fixes bugs bz#1763208 bz#1788656
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user