ceph-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* minor file journal size bug
@ 2010-06-14 14:19 Phil Carns
  2010-06-14 17:37 ` Yehuda Sadeh Weinraub
  0 siblings, 1 reply; 3+ messages in thread
From: Phil Carns @ 2010-06-14 14:19 UTC (permalink / raw)
  To: ceph-devel

[-- Attachment #1: Type: text/plain, Size: 540 bytes --]

Hi,

I ran into a minor problem when configuring the ObjectStore to use a 
file journal that was 10 gigabytes in size (osd_journal_size = 10240).  
The osd_journal_size configuration parameter is an integer.  This would 
normally be fine since the units are in megabytes, but it can overflow 
when bit shifted in FileJournal.cc.  This causes the journal to fall 
back to trying to detect a raw block device journal.

I've attached a small patch that fixes the problem for me, but there is 
probably a cleaner way to do it.

thanks,
-Phil



[-- Attachment #2: ceph-0.20.2-journal-size-overflow.patch --]
[-- Type: text/x-patch, Size: 746 bytes --]

diff -Naupr ceph-0.20.2/src/os/FileJournal.cc ceph-0.20.2-patched/src/os/FileJournal.cc
--- ceph-0.20.2/src/os/FileJournal.cc	2010-05-26 18:52:59.000000000 -0500
+++ ceph-0.20.2-patched/src/os/FileJournal.cc	2010-06-14 08:54:22.416230668 -0500
@@ -58,8 +58,8 @@ int FileJournal::_open(bool forwrite, bo
   max_size = st.st_size;
   block_size = st.st_blksize;
 
-  if (create && max_size < (g_conf.osd_journal_size << 20)) {
-    uint64_t newsize = g_conf.osd_journal_size << 20;
+  if (create && max_size < (((uint64_t)g_conf.osd_journal_size) << 20)) {
+    uint64_t newsize = ((uint64_t)g_conf.osd_journal_size) << 20;
     dout(10) << "_open extending to " << newsize << " bytes" << dendl;
     r = ::ftruncate(fd, newsize);
     if (r == 0)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-06-15 18:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-14 14:19 minor file journal size bug Phil Carns
2010-06-14 17:37 ` Yehuda Sadeh Weinraub
2010-06-15 18:29   ` Phil Carns

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).