mirror of
https://github.com/Zygo/bees.git
synced 2025-08-02 13:53:28 +02:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
14ccf88050 | ||
|
b6e4511446 | ||
|
256da15ac1 | ||
|
c426794542 | ||
|
ce0c1ab629 | ||
|
d11906c4e8 | ||
|
e7fbd0c732 | ||
|
cf9d1d0b78 |
4
Makefile
4
Makefile
@@ -9,6 +9,8 @@ SYSTEMD_SYSTEM_UNIT_DIR ?= $(shell pkg-config systemd --variable=systemdsystemun
|
|||||||
|
|
||||||
MARKDOWN := $(firstword $(shell type -P markdown markdown2 markdown_py 2>/dev/null || echo markdown))
|
MARKDOWN := $(firstword $(shell type -P markdown markdown2 markdown_py 2>/dev/null || echo markdown))
|
||||||
|
|
||||||
|
BEES_VERSION ?= $(shell git describe --always --dirty || echo UNKNOWN)
|
||||||
|
|
||||||
# allow local configuration to override above variables
|
# allow local configuration to override above variables
|
||||||
-include localconf
|
-include localconf
|
||||||
|
|
||||||
@@ -36,7 +38,7 @@ lib: ## Build libs
|
|||||||
|
|
||||||
src: ## Build bins
|
src: ## Build bins
|
||||||
src: lib
|
src: lib
|
||||||
$(MAKE) -C src
|
$(MAKE) BEES_VERSION="$(BEES_VERSION)" -C src
|
||||||
|
|
||||||
test: ## Run tests
|
test: ## Run tests
|
||||||
test: lib src
|
test: lib src
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#undef min
|
#undef min
|
||||||
#undef max
|
#undef max
|
||||||
#undef mutex
|
#undef mutex
|
||||||
|
#undef swap
|
||||||
|
|
||||||
#ifndef BTRFS_FIRST_FREE_OBJECTID
|
#ifndef BTRFS_FIRST_FREE_OBJECTID
|
||||||
|
|
||||||
|
@@ -6,20 +6,19 @@ After=sysinit.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStart=@PREFIX@/sbin/beesd --no-timestamps %i
|
ExecStart=@PREFIX@/sbin/beesd --no-timestamps %i
|
||||||
Nice=19
|
CPUAccounting=true
|
||||||
KillMode=control-group
|
CPUSchedulingPolicy=batch
|
||||||
KillSignal=SIGTERM
|
CPUWeight=12
|
||||||
CPUShares=128
|
|
||||||
StartupCPUShares=256
|
|
||||||
BlockIOWeight=100
|
|
||||||
StartupBlockIOWeight=250
|
|
||||||
IOSchedulingClass=idle
|
IOSchedulingClass=idle
|
||||||
IOSchedulingPriority=7
|
IOSchedulingPriority=7
|
||||||
CPUSchedulingPolicy=batch
|
IOWeight=10
|
||||||
|
KillMode=control-group
|
||||||
|
KillSignal=SIGTERM
|
||||||
|
MemoryAccounting=true
|
||||||
Nice=19
|
Nice=19
|
||||||
Restart=on-abnormal
|
Restart=on-abnormal
|
||||||
CPUAccounting=true
|
StartupCPUWeight=25
|
||||||
MemoryAccounting=true
|
StartupIOWeight=25
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=basic.target
|
WantedBy=basic.target
|
||||||
|
1
src/.gitignore
vendored
1
src/.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
bees-version.[ch]
|
bees-version.[ch]
|
||||||
|
bees-version.new.c
|
||||||
|
@@ -20,7 +20,7 @@ BEES_OBJS = \
|
|||||||
bees-types.o \
|
bees-types.o \
|
||||||
|
|
||||||
bees-version.c: bees.h $(BEES_OBJS:.o=.cc) Makefile
|
bees-version.c: bees.h $(BEES_OBJS:.o=.cc) Makefile
|
||||||
echo "const char *BEES_VERSION = \"$(shell git describe --always --dirty || echo UNKNOWN)\";" > bees-version.new.c
|
echo "const char *BEES_VERSION = \"$(BEES_VERSION)\";" > bees-version.new.c
|
||||||
mv -f bees-version.new.c bees-version.c
|
mv -f bees-version.new.c bees-version.c
|
||||||
|
|
||||||
.depends/%.dep: %.cc Makefile
|
.depends/%.dep: %.cc Makefile
|
||||||
|
@@ -150,6 +150,10 @@ BeesContext::show_progress()
|
|||||||
Fd
|
Fd
|
||||||
BeesContext::home_fd()
|
BeesContext::home_fd()
|
||||||
{
|
{
|
||||||
|
if (!!m_home_fd) {
|
||||||
|
return m_home_fd;
|
||||||
|
}
|
||||||
|
|
||||||
const char *base_dir = getenv("BEESHOME");
|
const char *base_dir = getenv("BEESHOME");
|
||||||
if (!base_dir) {
|
if (!base_dir) {
|
||||||
base_dir = ".beeshome";
|
base_dir = ".beeshome";
|
||||||
|
@@ -46,8 +46,8 @@ BeesCrawlState::BeesCrawlState() :
|
|||||||
bool
|
bool
|
||||||
BeesCrawlState::operator<(const BeesCrawlState &that) const
|
BeesCrawlState::operator<(const BeesCrawlState &that) const
|
||||||
{
|
{
|
||||||
return tie(m_min_transid, m_objectid, m_offset, m_root, m_max_transid)
|
return tie(m_min_transid, m_max_transid, m_objectid, m_offset, m_root)
|
||||||
< tie(that.m_min_transid, that.m_objectid, that.m_offset, that.m_root, that.m_max_transid);
|
< tie(that.m_min_transid, that.m_max_transid, that.m_objectid, that.m_offset, that.m_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
@@ -185,9 +185,12 @@ BeesRoots::transid_min()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
uint64_t rv = numeric_limits<uint64_t>::max();
|
uint64_t rv = numeric_limits<uint64_t>::max();
|
||||||
|
const uint64_t max_rv = rv;
|
||||||
for (auto i : m_root_crawl_map) {
|
for (auto i : m_root_crawl_map) {
|
||||||
rv = min(rv, i.second->get_state_end().m_min_transid);
|
rv = min(rv, i.second->get_state_end().m_min_transid);
|
||||||
}
|
}
|
||||||
|
// If we get through this loop without setting rv, we'll create broken crawlers due to integer overflow.
|
||||||
|
THROW_CHECK2(runtime_error, rv, max_rv, max_rv > rv);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -524,6 +527,16 @@ BeesRoots::state_load()
|
|||||||
loaded_state.m_started = d.at("started");
|
loaded_state.m_started = d.at("started");
|
||||||
}
|
}
|
||||||
BEESLOGDEBUG("loaded_state " << loaded_state);
|
BEESLOGDEBUG("loaded_state " << loaded_state);
|
||||||
|
if (loaded_state.m_min_transid == numeric_limits<uint64_t>::max()) {
|
||||||
|
BEESLOGWARN("WARNING: root " << loaded_state.m_root << ": bad min_transid " << loaded_state.m_min_transid << ", resetting to 0");
|
||||||
|
loaded_state.m_min_transid = 0;
|
||||||
|
BEESCOUNT(bug_bad_min_transid);
|
||||||
|
}
|
||||||
|
if (loaded_state.m_max_transid == numeric_limits<uint64_t>::max()) {
|
||||||
|
BEESLOGWARN("WARNING: root " << loaded_state.m_root << ": bad max_transid " << loaded_state.m_max_transid << ", resetting to " << loaded_state.m_min_transid);
|
||||||
|
loaded_state.m_max_transid = loaded_state.m_min_transid;
|
||||||
|
BEESCOUNT(bug_bad_max_transid);
|
||||||
|
}
|
||||||
insert_root(loaded_state);
|
insert_root(loaded_state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user