-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vm_memory_high_watermark.absolute validator accepts unsupported information units (e.g. Mi and not MB or MiB) #10310
Comments
michaelklishin
added a commit
that referenced
this issue
Jan 16, 2024
This revisits the information system conversion, that is, support for suffixes like GiB, GB. When configuration values like disk_free_limit.absolute, vm_memory_high_watermark.absolute are set, the value can contain an information unit (IU) suffix. We now support several new suffixes and the meaning a few more changes. First, the changes: * k, K now mean kilobytes and not kibibytes * m, M now mean megabytes and not mebibytes * g, G now means gigabytes and not gibibytes This is to match the system used by Kubernetes. There is no consensus in the industry about how "k", "m", "g", and similar single letter suffixes should be treated. Previously it was a power of 2, now a power of 10 to align with a very popular OSS project that explicitly documents what suffixes it supports. Now, the additions: Finally, the node will now validate these suffixes at boot time, so an unsupported value will cause the node to stop with a rabbitmq.conf validation error. The message logged will look like this: ```` 2024-01-15 22:11:17.829272-05:00 [error] <0.164.0> disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 2024-01-15 22:11:17.829376-05:00 [error] <0.164.0> Error preparing configuration in phase validation: 2024-01-15 22:11:17.829387-05:00 [error] <0.164.0> - disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 ```` Closes #10310
michaelklishin
added a commit
that referenced
this issue
Jan 31, 2024
This revisits the information system conversion, that is, support for suffixes like GiB, GB. When configuration values like disk_free_limit.absolute, vm_memory_high_watermark.absolute are set, the value can contain an information unit (IU) suffix. We now support several new suffixes and the meaning a few more changes. First, the changes: * k, K now mean kilobytes and not kibibytes * m, M now mean megabytes and not mebibytes * g, G now means gigabytes and not gibibytes This is to match the system used by Kubernetes. There is no consensus in the industry about how "k", "m", "g", and similar single letter suffixes should be treated. Previously it was a power of 2, now a power of 10 to align with a very popular OSS project that explicitly documents what suffixes it supports. Now, the additions: Finally, the node will now validate these suffixes at boot time, so an unsupported value will cause the node to stop with a rabbitmq.conf validation error. The message logged will look like this: ```` 2024-01-15 22:11:17.829272-05:00 [error] <0.164.0> disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 2024-01-15 22:11:17.829376-05:00 [error] <0.164.0> Error preparing configuration in phase validation: 2024-01-15 22:11:17.829387-05:00 [error] <0.164.0> - disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 ```` Closes #10310
michaelklishin
added a commit
that referenced
this issue
Feb 1, 2024
This revisits the information system conversion, that is, support for suffixes like GiB, GB. When configuration values like disk_free_limit.absolute, vm_memory_high_watermark.absolute are set, the value can contain an information unit (IU) suffix. We now support several new suffixes and the meaning a few more changes. First, the changes: * k, K now mean kilobytes and not kibibytes * m, M now mean megabytes and not mebibytes * g, G now means gigabytes and not gibibytes This is to match the system used by Kubernetes. There is no consensus in the industry about how "k", "m", "g", and similar single letter suffixes should be treated. Previously it was a power of 2, now a power of 10 to align with a very popular OSS project that explicitly documents what suffixes it supports. Now, the additions: Finally, the node will now validate these suffixes at boot time, so an unsupported value will cause the node to stop with a rabbitmq.conf validation error. The message logged will look like this: ```` 2024-01-15 22:11:17.829272-05:00 [error] <0.164.0> disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 2024-01-15 22:11:17.829376-05:00 [error] <0.164.0> Error preparing configuration in phase validation: 2024-01-15 22:11:17.829387-05:00 [error] <0.164.0> - disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 ```` Closes #10310
michaelklishin
added a commit
that referenced
this issue
Feb 29, 2024
This revisits the information system conversion, that is, support for suffixes like GiB, GB. When configuration values like disk_free_limit.absolute, vm_memory_high_watermark.absolute are set, the value can contain an information unit (IU) suffix. We now support several new suffixes and the meaning a few more changes. First, the changes: * k, K now mean kilobytes and not kibibytes * m, M now mean megabytes and not mebibytes * g, G now means gigabytes and not gibibytes This is to match the system used by Kubernetes. There is no consensus in the industry about how "k", "m", "g", and similar single letter suffixes should be treated. Previously it was a power of 2, now a power of 10 to align with a very popular OSS project that explicitly documents what suffixes it supports. Now, the additions: Finally, the node will now validate these suffixes at boot time, so an unsupported value will cause the node to stop with a rabbitmq.conf validation error. The message logged will look like this: ```` 2024-01-15 22:11:17.829272-05:00 [error] <0.164.0> disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 2024-01-15 22:11:17.829376-05:00 [error] <0.164.0> Error preparing configuration in phase validation: 2024-01-15 22:11:17.829387-05:00 [error] <0.164.0> - disk_free_limit.absolute invalid, supported formats: 500MB, 500MiB, 10GB, 10GiB, 2TB, 2TiB, 10000000000 ```` Closes #10310
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
As demonstrated in #10308,
vm_memory_high_watermark.absolute = 768Mi
will be accepted by the Cuttlefish (
rabbitmq.conf
) schema and thenrabbitmq-diagnostics status
will fail because it does not know how to formatMi
.Ideally the node should fail to start, although accepting
Mi
,Gi
as reasonable approximations forMiB
,GiB
would be an improvement, too.The text was updated successfully, but these errors were encountered: