d78b29625c
Previously, running a command like `set \xffx\02abcded/` would cause a crash. The `x\02` is a malformed typo of `\x02`, and the previously existing code to handle this case looks like loop { err = parse_command if (err) continue; // do things } Thus, if we hit an error, we'd go back to the top of the loop, and try again. This should be an infinite loop. However, the actor compiler implementation of loops involves function calls, so this actually turns into a series of the loop head calling the loop body calling the loop head calling ... and we eventually crash due to running out of stack. This is now fixed by simply letting the code continue on to the check later that does if (there was an error) { print nasty message return error } With output that looks like ERROR: malformed escape sequence WARNING: the previous command failed, the remaining commands will not be executed. And therefore the world becomes a happy place. |
||
---|---|---|
bindings | ||
build | ||
fdbbackup | ||
fdbcli | ||
fdbclient | ||
fdbmonitor | ||
fdbrpc | ||
fdbserver | ||
fdbservice | ||
flow | ||
layers | ||
packaging | ||
recipes | ||
tests | ||
.gitignore | ||
ACKNOWLEDGEMENTS | ||
LICENSE | ||
Makefile | ||
README.md | ||
foundationdb.sln | ||
versions.target |
README.md
FoundationDB
FoundationDB is a distributed database designed to handle large volumes of structured data across clusters of commodity servers. It organizes data as an ordered key-value store and employs ACID transactions for all operations. It is especially well-suited for read/write workloads but also has excellent performance for write-intensive workloads. Users interact with the database using API language binding.