Project

General

Profile

Bug #45434

Updated by Ramana Raja almost 4 years ago

http://pulpito.ceph.com/yuriw-2020-05-05_20:55:43-kcephfs-wip-yuri-testing-2020-05-05-1439-distro-basic-smithi/5026174/ 


 <pre> 
 020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:====================================================================== 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:ERROR: test_full_fsync (tasks.cephfs.test_full.TestClusterFull) 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:---------------------------------------------------------------------- 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:Traceback (most recent call last): 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:    File "/home/teuthworker/src/git.ceph.com_ceph-c_wip-yuri-testing-2020-05-05-1439/qa/tasks/cephfs/test_full.py", line 356, in test_full_fsync 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:      self._remote_write_test(remote_script) 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:    File "/home/teuthworker/src/git.ceph.com_ceph-c_wip-yuri-testing-2020-05-05-1439/qa/tasks/cephfs/test_full.py", line 222, in _remote_write_test 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:      is_fuse=isinstance(self.mount_a, FuseMount) 
 2020-05-06T18:04:48.476 INFO:tasks.cephfs_test_runner:    File "/home/teuthworker/src/git.ceph.com_ceph-c_wip-yuri-testing-2020-05-05-1439/qa/tasks/cephfs/mount.py", line 191, in run_python 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:      p.wait() 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:    File "/home/teuthworker/src/git.ceph.com_git_teuthology_py2/teuthology/orchestra/run.py", line 162, in wait 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:      self._raise_for_status() 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:    File "/home/teuthworker/src/git.ceph.com_git_teuthology_py2/teuthology/orchestra/run.py", line 184, in _raise_for_status 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:      node=self.hostname, label=self.label 
 2020-05-06T18:04:48.477 INFO:tasks.cephfs_test_runner:CommandFailedError: Command failed on smithi171 with status 1: 'sudo adjust-ulimits daemon-helper kill python3 -c \'\nimport time\nimport datetime\nimport subprocess\nimport os\n\n# Write some buffered data through before going full, all should be well\nprint("writing some data through which we expect to succeed")\nbytes = 0\nf = os.open("/home/ubuntu/cephtest/mnt.0/full_test_file", os.O_WRONLY | os.O_CREAT)\nbytes += os.write(f, b\'"\'"\'a\'"\'"\' * 4096)\nos.fsync(f)\nprint("fsync\'"\'"\'ed data successfully, will now attempt to fill fs")\n\n# Okay, now we\'"\'"\'re going to fill up the filesystem, and then keep\n# writing until we see an error from fsync.    As long as we\'"\'"\'re doing\n# buffered IO, the error should always only appear from fsync and not\n# from write\nfull = False\n\nfor n in range(0, int(373 * 1.1)):\n      try:\n          bytes += os.write(f, b\'"\'"\'x\'"\'"\' * 1024 * 1024)\n          print("wrote bytes via buffered write, moving on to fsync")\n      except OSError as e:\n          print("Unexpected error %s from write() instead of fsync()" % e)\n          raise\n\n      try:\n          os.fsync(f)\n          print("fsync\'"\'"\'ed successfully")\n      except OSError as e:\n          print("Reached fullness after %.2f MB" % (bytes / (1024.0 * 1024.0)))\n          full = True\n          break\n      else:\n          print("Not full yet after %.2f MB" % (bytes / (1024.0 * 1024.0)))\n\n      if n > 373 * 0.9:\n          # Be cautious in the last region where we expect to hit\n          # the full condition, so that we don\'"\'"\'t overshoot too dramatically\n          print("sleeping a bit as we\'"\'"\'ve exceeded 90% of our expected full ratio")\n          time.sleep(15.0)\n\nif not full:\n      raise RuntimeError("Failed to reach fullness after writing %d bytes" % bytes)\n\n# close() should not raise an error because we already caught it in\n# fsync.    There shouldn\'"\'"\'t have been any more writeback errors\n# since then because all IOs got cancelled on the full flag.\nprint("calling close")\nos.close(f)\nprint("close() did not raise error")\n\nos.unlink("/home/ubuntu/cephtest/mnt.0/full_test_file")\n\'' 
 </pre> 

 And I see this earlier in the teuthology.log 
 <pre> ``` 
 2020-05-06T18:04:34.297 INFO:teuthology.orchestra.run.smithi171.stdout:Not full yet after 338.00 MB 
 2020-05-06T18:04:34.297 INFO:teuthology.orchestra.run.smithi171.stdout:sleeping a bit as we've exceeded 90% of our expected full ratio 
 2020-05-06T18:04:34.297 INFO:teuthology.orchestra.run.smithi171.stdout:Unexpected error [Errno 28] No space left on device from write() instead of fsync() 
 2020-05-06T18:04:34.298 INFO:teuthology.orchestra.run.smithi171.stderr:Traceback (most recent call last): 
 2020-05-06T18:04:34.298 INFO:teuthology.orchestra.run.smithi171.stderr:    File "<string>", line 23, in <module> 
 2020-05-06T18:04:34.298 INFO:teuthology.orchestra.run.smithi171.stderr:OSError: [Errno 28] No space left on device 
 2020-05-06T18:04:34.527 INFO:teuthology.orchestra.run.smithi171.stderr:daemon-helper: command failed with exit status 1 
 2020-05-06T18:04:34.546 DEBUG:teuthology.orchestra.run:got remote process result: 1 
 2020-05-06T18:04:34.548 INFO:tasks.cephfs_test_runner:test_full_fsync (tasks.cephfs.test_full.TestClusterFull) ... ERROR 
 </pre> 

 ```

Back