{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.jm0O9Qju/b1/ironic_29.0.0-3_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.jm0O9Qju/b2/ironic_29.0.0-3_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,6 +1,6 @@\n \n 5cee9f7b9160bb5400f9f6760ea14831 23004 net optional ironic-api_29.0.0-3_all.deb\n- 925b1081e27131f63c8cf383fac84b19 164540 net optional ironic-common_29.0.0-3_all.deb\n+ 40a10ee40bf065f1e7a4683d41658642 164548 net optional ironic-common_29.0.0-3_all.deb\n 33351f5a0d29815a6f9b0916c9d231a7 9344 net optional ironic-conductor_29.0.0-3_all.deb\n- a2cfe3b78fee8dbf42f0c59463aa914a 3354168 doc optional ironic-doc_29.0.0-3_all.deb\n+ 22bccdd88c72afcc52a84bc1ae3ce142 3354268 doc optional ironic-doc_29.0.0-3_all.deb\n 4513462bb7af553071c26a74ecaa3711 1112928 python optional python3-ironic_29.0.0-3_all.deb\n"}, {"source1": "ironic-common_29.0.0-3_all.deb", "source2": "ironic-common_29.0.0-3_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-04-14 09:20:13.000000 debian-binary\n--rw-r--r-- 0 0 0 17408 2025-04-14 09:20:13.000000 control.tar.xz\n--rw-r--r-- 0 0 0 146940 2025-04-14 09:20:13.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 17412 2025-04-14 09:20:13.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 146944 2025-04-14 09:20:13.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/ironic-common/ironic.conf", "source2": "./usr/share/ironic-common/ironic.conf", "comments": ["Ordering differences only"], "unified_diff": "@@ -438,27 +438,27 @@\n # \"service\" is a default convention for OpenStack deployments, but the requisite access and details around end configuration are largely up\n # to an operator if they are doing an OpenStack deployment manually. (string value)\n #rbac_service_project_name = service\n \n # Hash function to use when building the hash ring. If running on a FIPS system, do not use md5. WARNING: all ironic services in a cluster\n # MUST use the same algorithm at all times. Changing the algorithm requires an offline update. (string value)\n # Possible values:\n-# shake_256 - \n-# sha512 - \n-# sha3_224 - \n+# sha1 - \n+# sha224 - \n # sha3_512 - \n+# sha3_256 - \n+# sha3_384 - \n+# shake_128 - \n # blake2s - \n-# sha1 - \n+# shake_256 - \n # md5 - \n-# sha224 - \n+# sha3_224 - \n+# sha512 - \n # sha384 - \n-# sha3_256 - \n # blake2b - \n-# shake_128 - \n-# sha3_384 - \n # sha256 - \n # Advanced Option: intended for advanced users and not used\n # by the majority of users, and might have a significant\n # effect on stability and/or performance.\n #hash_ring_algorithm = md5\n \n #\n"}]}]}]}, {"source1": "ironic-doc_29.0.0-3_all.deb", "source2": "ironic-doc_29.0.0-3_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-04-14 09:20:13.000000 debian-binary\n--rw-r--r-- 0 0 0 33548 2025-04-14 09:20:13.000000 control.tar.xz\n--rw-r--r-- 0 0 0 3320428 2025-04-14 09:20:13.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 33560 2025-04-14 09:20:13.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 3320516 2025-04-14 09:20:13.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -4,15 +4,15 @@\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/\n -rw-r--r-- 0 root (0) root (0) 3231 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 2055 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/46a710314a54e51427dfa661f40debfb/\n--rw-r--r-- 0 root (0) root (0) 49938 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/46a710314a54e51427dfa661f40debfb/ironic.conf.sample.gz\n+-rw-r--r-- 0 root (0) root (0) 49941 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/46a710314a54e51427dfa661f40debfb/ironic.conf.sample.gz\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/bca715bf2d67df782be72fe5453fdf66/\n -rw-r--r-- 0 root (0) root (0) 6329 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_downloads/bca715bf2d67df782be72fe5453fdf66/ironic.policy.yaml.sample.gz\n drwxr-xr-x 0 root (0) root (0) 0 2025-04-14 09:20:13.000000 ./usr/share/doc/ironic-doc/html/_images/\n -rw-r--r-- 0 root (0) root (0) 7850 2025-03-19 21:03:23.000000 ./usr/share/doc/ironic-doc/html/_images/agent-token-with-pxe-ipxe.svg\n -rw-r--r-- 0 root (0) root (0) 9822 2025-03-19 21:03:23.000000 ./usr/share/doc/ironic-doc/html/_images/agent-token-with-virtual-media.svg\n -rw-r--r-- 0 root (0) root (0) 8747 2025-03-19 21:03:23.000000 ./usr/share/doc/ironic-doc/html/_images/boot-from-volume.svg\n -rw-r--r-- 0 root (0) root (0) 49070 2025-03-19 21:03:23.000000 ./usr/share/doc/ironic-doc/html/_images/conceptual_architecture.png\n"}, {"source1": "./usr/share/doc/ironic-doc/html/_downloads/46a710314a54e51427dfa661f40debfb/ironic.conf.sample.gz", "source2": "./usr/share/doc/ironic-doc/html/_downloads/46a710314a54e51427dfa661f40debfb/ironic.conf.sample.gz", "unified_diff": null, "details": [{"source1": "ironic.conf.sample", "source2": "ironic.conf.sample", "comments": ["Ordering differences only"], "unified_diff": "@@ -676,28 +676,28 @@\n \n # Hash function to use when building the hash ring. If running\n # on a FIPS system, do not use md5. WARNING: all ironic\n # services in a cluster MUST use the same algorithm at all\n # times. Changing the algorithm requires an offline update.\n # (string value)\n # Possible values:\n+# sha224 - \n+# sha3_224 - \n+# sha384 - \n # md5 - \n-# blake2s - \n # sha3_512 - \n-# sha512 - \n-# sha3_224 - \n-# sha3_256 - \n-# shake_128 - \n # shake_256 - \n-# sha256 - \n-# sha224 - \n+# sha3_256 - \n # sha1 - \n-# sha384 - \n+# shake_128 - \n # blake2b - \n # sha3_384 - \n+# sha256 - \n+# blake2s - \n+# sha512 - \n # Advanced Option: intended for advanced users and not used\n # by the majority of users, and might have a significant\n # effect on stability and/or performance.\n #hash_ring_algorithm = md5\n \n #\n # From oslo.log\n"}]}, {"source1": "./usr/share/doc/ironic-doc/html/configuration/config.html", "source2": "./usr/share/doc/ironic-doc/html/configuration/config.html", "unified_diff": "@@ -644,15 +644,15 @@\n
Type:
\n

string

\n
\n
Default:
\n

md5

\n
\n
Valid Values:
\n-

md5, blake2s, sha3_512, sha512, sha3_224, sha3_256, shake_128, shake_256, sha256, sha224, sha1, sha384, blake2b, sha3_384

\n+

sha224, sha3_224, sha384, md5, sha3_512, shake_256, sha3_256, sha1, shake_128, blake2b, sha3_384, sha256, blake2s, sha512

\n
\n
Advanced Option:
\n

Intended for advanced users and not used\n by the majority of users, and might have a significant\n effect on stability and/or performance.

\n
\n \n@@ -1289,14 +1289,106 @@\n

service

\n
\n \n

The project name utilized for Role Based Access Control checks for the reserved service project. This project is utilized for services to have accounts for cross-service communication. Often these accounts require higher levels of access, and effectively this permits accounts from the service to not be restricted to project scoping of responses. i.e. The service project user with a service role will be able to see nodes across all projects, similar to System scoped access. If not set to a value, and all service role access will be filtered matching an owner or lessee, if applicable. If an operator wishes to make behavior visible for all service role users across all projects, then a custom policy must be used to override the default \u201cservice_role\u201d rule. It should be noted that the value of \u201cservice\u201d is a default convention for OpenStack deployments, but the requisite access and details around end configuration are largely up to an operator if they are doing an OpenStack deployment manually.

\n \n \n
\n+
\n+run_external_periodic_tasks\u00b6
\n+
\n+
Type:
\n+

boolean

\n+
\n+
Default:
\n+

True

\n+
\n+
\n+

Some periodic tasks can be run in a separate process. Should we run them here?

\n+
\n+\n+
\n+
\n+backdoor_port\u00b6
\n+
\n+
Type:
\n+

string

\n+
\n+
Default:
\n+

<None>

\n+
\n+
\n+

Enable eventlet backdoor. Acceptable values are 0, <port>, and <start>:<end>, where 0 results in listening on a random tcp port number; <port> results in listening on the specified port number (and not enabling backdoor if that port is in use); and <start>:<end> results in listening on the smallest unused port number within the specified range of port numbers. The chosen port is displayed in the service\u2019s log file.

\n+
\n+

Warning

\n+

This option is deprecated for removal.\n+Its value may be silently ignored \n+in the future.

\n+
\n+
Reason:
\n+

The \u2018backdoor_port\u2019 option is deprecated and will be removed in a future release.

\n+
\n+
\n+
\n+
\n+\n+
\n+
\n+backdoor_socket\u00b6
\n+
\n+
Type:
\n+

string

\n+
\n+
Default:
\n+

<None>

\n+
\n+
\n+

Enable eventlet backdoor, using the provided path as a unix socket that can receive connections. This option is mutually exclusive with \u2018backdoor_port\u2019 in that only one should be provided. If both are provided then the existence of this option overrides the usage of that option. Inside the path {pid} will be replaced with the PID of the current process.

\n+
\n+

Warning

\n+

This option is deprecated for removal.\n+Its value may be silently ignored \n+in the future.

\n+
\n+
Reason:
\n+

The \u2018backdoor_socket\u2019 option is deprecated and will be removed in a future release.

\n+
\n+
\n+
\n+
\n+\n+
\n+
\n+log_options\u00b6
\n+
\n+
Type:
\n+

boolean

\n+
\n+
Default:
\n+

True

\n+
\n+
\n+

Enables or disables logging values of all registered options when starting a service (at DEBUG level).

\n+
\n+\n+
\n+
\n+graceful_shutdown_timeout\u00b6
\n+
\n+
Type:
\n+

integer

\n+
\n+
Default:
\n+

60

\n+
\n+
\n+

Specify a timeout after which a gracefully shutdown server will exit. Zero value means endless wait.

\n+
\n+\n+
\n
\n executor_thread_pool_size\u00b6
\n
\n
Type:
\n

integer

\n
\n
Default:
\n@@ -1871,106 +1963,14 @@\n
Default:
\n

False

\n
\n
\n

Enables or disables fatal status of deprecations.

\n
\n \n-
\n-
\n-run_external_periodic_tasks\u00b6
\n-
\n-
Type:
\n-

boolean

\n-
\n-
Default:
\n-

True

\n-
\n-
\n-

Some periodic tasks can be run in a separate process. Should we run them here?

\n-
\n-\n-
\n-
\n-backdoor_port\u00b6
\n-
\n-
Type:
\n-

string

\n-
\n-
Default:
\n-

<None>

\n-
\n-
\n-

Enable eventlet backdoor. Acceptable values are 0, <port>, and <start>:<end>, where 0 results in listening on a random tcp port number; <port> results in listening on the specified port number (and not enabling backdoor if that port is in use); and <start>:<end> results in listening on the smallest unused port number within the specified range of port numbers. The chosen port is displayed in the service\u2019s log file.

\n-
\n-

Warning

\n-

This option is deprecated for removal.\n-Its value may be silently ignored \n-in the future.

\n-
\n-
Reason:
\n-

The \u2018backdoor_port\u2019 option is deprecated and will be removed in a future release.

\n-
\n-
\n-
\n-
\n-\n-
\n-
\n-backdoor_socket\u00b6
\n-
\n-
Type:
\n-

string

\n-
\n-
Default:
\n-

<None>

\n-
\n-
\n-

Enable eventlet backdoor, using the provided path as a unix socket that can receive connections. This option is mutually exclusive with \u2018backdoor_port\u2019 in that only one should be provided. If both are provided then the existence of this option overrides the usage of that option. Inside the path {pid} will be replaced with the PID of the current process.

\n-
\n-

Warning

\n-

This option is deprecated for removal.\n-Its value may be silently ignored \n-in the future.

\n-
\n-
Reason:
\n-

The \u2018backdoor_socket\u2019 option is deprecated and will be removed in a future release.

\n-
\n-
\n-
\n-
\n-\n-
\n-
\n-log_options\u00b6
\n-
\n-
Type:
\n-

boolean

\n-
\n-
Default:
\n-

True

\n-
\n-
\n-

Enables or disables logging values of all registered options when starting a service (at DEBUG level).

\n-
\n-\n-
\n-
\n-graceful_shutdown_timeout\u00b6
\n-
\n-
Type:
\n-

integer

\n-
\n-
Default:
\n-

60

\n-
\n-
\n-

Specify a timeout after which a gracefully shutdown server will exit. Zero value means endless wait.

\n-
\n-\n
\n

agent\u00b6

\n
\n
\n
\n manage_agent_boot\u00b6
\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -441,16 +441,16 @@\n refreshed on the next access.\n hash_ring_algorithm_\b\u00b6\n Type:\n string\n Default:\n md5\n Valid Values:\n- md5, blake2s, sha3_512, sha512, sha3_224, sha3_256, shake_128,\n- shake_256, sha256, sha224, sha1, sha384, blake2b, sha3_384\n+ sha224, sha3_224, sha384, md5, sha3_512, shake_256, sha3_256, sha1,\n+ shake_128, blake2b, sha3_384, sha256, blake2s, sha512\n Advanced Option:\n Intended for advanced users and not used by the majority of users,\n and might have a significant effect on stability and/or\n performance.\n Hash function to use when building the hash ring. If running on a FIPS\n system, do not use md5. WARNING: all ironic services in a cluster MUST\n use the same algorithm at all times. Changing the algorithm requires an\n@@ -877,14 +877,69 @@\n all service role access will be filtered matching anownerorlessee, if\n applicable. If an operator wishes to make behavior visible for all\n service role users across all projects, then a custom policy must be used\n to override the default \u201cservice_role\u201d rule. It should be noted that the\n value of \u201cservice\u201d is a default convention for OpenStack deployments, but\n the requisite access and details around end configuration are largely up\n to an operator if they are doing an OpenStack deployment manually.\n+ run_external_periodic_tasks_\b\u00b6\n+ Type:\n+ boolean\n+ Default:\n+ True\n+ Some periodic tasks can be run in a separate process. Should we run them\n+ here?\n+ backdoor_port_\b\u00b6\n+ Type:\n+ string\n+ Default:\n+ \n+ Enable eventlet backdoor. Acceptable values are 0, , and :\n+ , where 0 results in listening on a random tcp port number; \n+ results in listening on the specified port number (and not enabling\n+ backdoor if that port is in use); and : results in listening\n+ on the smallest unused port number within the specified range of port\n+ numbers. The chosen port is displayed in the service\u2019s log file.\n+ Warning\n+ This option is deprecated for removal. Its value may be silently ignored\n+ in the future.\n+ Reason:\n+ The \u2018backdoor_port\u2019 option is deprecated and will be removed in a\n+ future release.\n+ backdoor_socket_\b\u00b6\n+ Type:\n+ string\n+ Default:\n+ \n+ Enable eventlet backdoor, using the provided path as a unix socket that\n+ can receive connections. This option is mutually exclusive with\n+ \u2018backdoor_port\u2019 in that only one should be provided. If both are provided\n+ then the existence of this option overrides the usage of that option.\n+ Inside the path {pid} will be replaced with the PID of the current\n+ process.\n+ Warning\n+ This option is deprecated for removal. Its value may be silently ignored\n+ in the future.\n+ Reason:\n+ The \u2018backdoor_socket\u2019 option is deprecated and will be removed in a\n+ future release.\n+ log_options_\b\u00b6\n+ Type:\n+ boolean\n+ Default:\n+ True\n+ Enables or disables logging values of all registered options when\n+ starting a service (at DEBUG level).\n+ graceful_shutdown_timeout_\b\u00b6\n+ Type:\n+ integer\n+ Default:\n+ 60\n+ Specify a timeout after which a gracefully shutdown server will exit.\n+ Zero value means endless wait.\n executor_thread_pool_size_\b\u00b6\n Type:\n integer\n Default:\n 64\n Size of executor thread pool when executor is threading or eventlet.\n D\bDe\bep\bpr\bre\bec\bca\bat\bte\bed\bd V\bVa\bar\bri\bia\bat\bti\bio\bon\bns\bs_\b?\b\u00b6\n@@ -1181,69 +1236,14 @@\n levels are filtered.\n fatal_deprecations_\b\u00b6\n Type:\n boolean\n Default:\n False\n Enables or disables fatal status of deprecations.\n- run_external_periodic_tasks_\b\u00b6\n- Type:\n- boolean\n- Default:\n- True\n- Some periodic tasks can be run in a separate process. Should we run them\n- here?\n- backdoor_port_\b\u00b6\n- Type:\n- string\n- Default:\n- \n- Enable eventlet backdoor. Acceptable values are 0, , and :\n- , where 0 results in listening on a random tcp port number; \n- results in listening on the specified port number (and not enabling\n- backdoor if that port is in use); and : results in listening\n- on the smallest unused port number within the specified range of port\n- numbers. The chosen port is displayed in the service\u2019s log file.\n- Warning\n- This option is deprecated for removal. Its value may be silently ignored\n- in the future.\n- Reason:\n- The \u2018backdoor_port\u2019 option is deprecated and will be removed in a\n- future release.\n- backdoor_socket_\b\u00b6\n- Type:\n- string\n- Default:\n- \n- Enable eventlet backdoor, using the provided path as a unix socket that\n- can receive connections. This option is mutually exclusive with\n- \u2018backdoor_port\u2019 in that only one should be provided. If both are provided\n- then the existence of this option overrides the usage of that option.\n- Inside the path {pid} will be replaced with the PID of the current\n- process.\n- Warning\n- This option is deprecated for removal. Its value may be silently ignored\n- in the future.\n- Reason:\n- The \u2018backdoor_socket\u2019 option is deprecated and will be removed in a\n- future release.\n- log_options_\b\u00b6\n- Type:\n- boolean\n- Default:\n- True\n- Enables or disables logging values of all registered options when\n- starting a service (at DEBUG level).\n- graceful_shutdown_timeout_\b\u00b6\n- Type:\n- integer\n- Default:\n- 60\n- Specify a timeout after which a gracefully shutdown server will exit.\n- Zero value means endless wait.\n *\b**\b**\b**\b**\b* a\bag\bge\ben\bnt\bt_\b?\b\u00b6 *\b**\b**\b**\b**\b*\n manage_agent_boot_\b\u00b6\n Type:\n boolean\n Default:\n True\n Whether Ironic will manage booting of the agent ramdisk. If set to False,\n"}]}, {"source1": "./usr/share/doc/ironic-doc/html/configuration/sample-config.html", "source2": "./usr/share/doc/ironic-doc/html/configuration/sample-config.html", "comments": ["Ordering differences only"], "unified_diff": "@@ -783,28 +783,28 @@\n \n # Hash function to use when building the hash ring. If running\n # on a FIPS system, do not use md5. WARNING: all ironic\n # services in a cluster MUST use the same algorithm at all\n # times. Changing the algorithm requires an offline update.\n # (string value)\n # Possible values:\n+# sha224 - <No description provided>\n+# sha3_224 - <No description provided>\n+# sha384 - <No description provided>\n # md5 - <No description provided>\n-# blake2s - <No description provided>\n # sha3_512 - <No description provided>\n-# sha512 - <No description provided>\n-# sha3_224 - <No description provided>\n-# sha3_256 - <No description provided>\n-# shake_128 - <No description provided>\n # shake_256 - <No description provided>\n-# sha256 - <No description provided>\n-# sha224 - <No description provided>\n+# sha3_256 - <No description provided>\n # sha1 - <No description provided>\n-# sha384 - <No description provided>\n+# shake_128 - <No description provided>\n # blake2b - <No description provided>\n # sha3_384 - <No description provided>\n+# sha256 - <No description provided>\n+# blake2s - <No description provided>\n+# sha512 - <No description provided>\n # Advanced Option: intended for advanced users and not used\n # by the majority of users, and might have a significant\n # effect on stability and/or performance.\n #hash_ring_algorithm = md5\n \n #\n # From oslo.log\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -688,28 +688,28 @@\n \n # Hash function to use when building the hash ring. If running\n # on a FIPS system, do not use md5. WARNING: all ironic\n # services in a cluster MUST use the same algorithm at all\n # times. Changing the algorithm requires an offline update.\n # (string value)\n # Possible values:\n+# sha224 - \n+# sha3_224 - \n+# sha384 - \n # md5 - \n-# blake2s - \n # sha3_512 - \n-# sha512 - \n-# sha3_224 - \n-# sha3_256 - \n-# shake_128 - \n # shake_256 - \n-# sha256 - \n-# sha224 - \n+# sha3_256 - \n # sha1 - \n-# sha384 - \n+# shake_128 - \n # blake2b - \n # sha3_384 - \n+# sha256 - \n+# blake2s - \n+# sha512 - \n # Advanced Option: intended for advanced users and not used\n # by the majority of users, and might have a significant\n # effect on stability and/or performance.\n #hash_ring_algorithm = md5\n \n #\n # From oslo.log\n"}]}]}]}]}]}