Chapter 6. Notable Bug Fixes
This section describes bugs fixed in this release of Red Hat Ceph Storage that have significant impact on users.
"Operation not permitted" errors are no longer incorrectly returned
When using a client whose MDS capabilities are limited by the path=
parameter, operations in newly created directories in certain cases failed with the "Operation not permitted" errors (EPERM). The underlying source code has been modified, and such errors are no longer returned. (BZ#1415260)
Buckets no longer have incorrect time stamps
Previously, buckets created by the Simple Storage Service (S3) API on the Ceph Object Gateway before mounting the Ganesha NFS interface had incorrect time stamps when viewed from NFS. With this update, the NFS service uses time stamps that are based on the correct times of creation or modification of buckets. As a result, buckets created by the S3 API no longer have incorrect time stamps. (BZ#1359404)
Setting file permissions and ownership attributes no longer fails on existing files and directories
Previously, the NFS Ganesha file system failed to serialize and store UNIX attributes on existing files and directories. Consequently, file permissions and ownership attributes that were set after file or directory creation were not correctly stored. The underlying source code has been modified, and setting file permissions and ownership attributes no longer fails on existing files and directories. (BZ#1358020)
The radosgw-admin orphan find command works as expected
When listing objects, a segment marker caused incorrect listing of a subset of the Ceph Object Gateway internal objects. This behavior caused the radosgw-admin orphan find
command to enter an infinite loop. This bug has been fixed, and the radosgw-admin orphan find
command now works correctly. (BZ#1371212)
The "ceph df" output no longer includes OSD nodes marked as "out"
The ceph df
command shows cluster free space. Previously, the OSD node that were marked as out
were incorrectly included in the output of ceph df
. Consequently, if the Ceph cluster included an OSD node that was marked as out
, the output of ceph df
was incorrect. This bug has been fixed, and ceph df
now correctly reports cluster free space. (BZ#1391250)
Listing bucket info data no longer causes the OSD daemon to terminate unexpectedly
Due to invalid memory access in an object class operation, the radosgw-admin bi list --max-entries=1
command in some cases caused the Ceph OSD daemon to terminate unexpectedly with a segmentation fault. This bug has been fixed, and listing bucket info data no longer causes the OSD daemon to crash. (BZ#1390716)
The Ceph Object Gateway now correctly logs when HTTP clients get disconnected
Due to incorrect error translation, unexpected disconnections by HTTP clients were incorrectly logged as HTTP 403: authorization failed
errors. As a consequence, administrators could believe that an actual authentication failure had occurred, and that this failure was visible to clients. With this update, the Ceph Object Gateway handles the error translation correctly and logs a proper error message when the HTTP clients get disconnected. (BZ#1417178)
OSD nodes no longer fail to start after a reboot
When the ceph-osd
service was enabled for a given OSD device, a race condition in some cases occurred between the ceph-osd
and the ceph-disk
services at boot time. As a consequence, the OSD did not start after a reboot. With this update, the ceph-disk
utility now calls the systemctl enable
and disable
commands with the --runtime
option so that the ceph-osd
units are lost after a reboot. As result, OSD nodes start as expected after a reboot. (BZ#1391197)
Restart of the radosgw
service on clients is no longer needed after rebooting the cluster
Previously, after rebooting the Ceph cluster, it was necessary to restart the radosgw
service on the Ceph Object Gateway clients to restore the connection with the cluster. With this update, the restart of radosgw
is no longer needed. (BZ#1363689)
Upgrading encrypted OSDs is now supported
Previously, the ceph-ansible
utility did not support adding encrypted OSD nodes. As a consequence, an attempt to upgrade to a newer, minor, or major version failed on encrypted OSD nodes. In addition, Ansible returned the following error message during the disk activation task:
mount: unknown filesystem type 'crypto_LUKS'
With this update, ceph-ansible
supports adding encrypted OSD nodes, and upgrading works as expected. (BZ#1366808)
The Ceph Object Gateway now passes all Swift tests in the RefSTack Tempest test suite version 10.0.0-3
Previously, the Ceph Object Gateway failed certain RefSTack Tempest tests, such as the TempURL and object versioning tests. With this update, the underlying source code has been modified, and the Ceph Object Gateway now correctly passes all tests.
In addition, to pass the "(0) content-length header after object deletion present" test, set the rgw print prohibited content length
setting in the Ceph configuration file to true
.
If the Ceph Object Gateway is configured for Object Store and not for Swift, perform the following steps to pass the tests:
During the Tempest configuration, set the following parameters in the Ceph configuration file:
rgw_swift_url_prefix = "/" rgw_enable_apis=swift, swift_auth, admin
Once the configuration is complete, comment the parameters out:
# rgw_swift_url_prefix # rgw_enable_apis
See the config_tempest.py breaks if Rados Gateway is configured for object-store solution for details. (BZ#1252600)
Removing a Ceph Monitor no longer returns an error
When removing a Ceph Monitor by using the ceph mon remove
command, the Monitor was successfully removed, but an error message similar to the following was returned:
Error EINVAL: removing mon.magna072 at 10.8.128.72:6789/0, there will be 3 monitors
The underlying source code has been fixed, and the error is no longer returned when removing Ceph Monitors. (BZ#1394495)
OSD nodes no longer crash when an I/O error occurs
Previously, if an I/O error occurred on one of the objects in an erasure-coded pool during recovery, the primary OSD node of the placement group containing the object hit the runtime check. Consequently, this OSD terminated unexpectedly. With this update, Ceph leaves the object unrecovered without hitting the runtime check. As a result, OSDs no longer crash in such a case. (BZ#1414613)