1
0
Fork 0

Merge branch 'devel' of ssh://github.com/ArangoDB/ArangoDB into devel

This commit is contained in:
Max Neunhoeffer 2015-12-16 10:29:50 +01:00
commit c376200978
6 changed files with 54 additions and 31 deletions

View File

@ -4,6 +4,8 @@ This is an introduction to ArangoDB's interface for indexes in general.
There are special sections for There are special sections for
- [index basics](../IndexHandling/IndexBasics.md) - [index basics](../IndexHandling/IndexBasics.md)
- [Which Index to use when](../IndexHandling/WhichIndex.md)
- [How ArangoDB uses indexes](../IndexHandling/HowArangoDBUsesIndexes.md)
- [working with indexes](../IndexHandling/WorkingWithIndexes.md) - [working with indexes](../IndexHandling/WorkingWithIndexes.md)
- [hash indexes](../IndexHandling/Hash.md) - [hash indexes](../IndexHandling/Hash.md)
- [skiplists](../IndexHandling/Skiplist.md) - [skiplists](../IndexHandling/Skiplist.md)

View File

@ -72,7 +72,7 @@ namespace triagens {
CollectionInfo (); CollectionInfo ();
CollectionInfo (struct TRI_json_t*); explicit CollectionInfo (struct TRI_json_t*);
CollectionInfo (CollectionInfo const&); CollectionInfo (CollectionInfo const&);

View File

@ -181,7 +181,14 @@ void ClusterTraverser::EdgeGetter::operator() (std::string const& startVertex,
if (_traverser->_vertices.find(toId) == _traverser->_vertices.end()) { if (_traverser->_vertices.find(toId) == _traverser->_vertices.end()) {
verticesToFetch.emplace(toId); verticesToFetch.emplace(toId);
} }
_traverser->_edges.emplace(edgeId, edge.copy().steal()); std::unique_ptr<TRI_json_t> copy(edge.copy().steal());
if (copy != nullptr) {
if (_traverser->_edges.emplace(edgeId, copy.get()).second) {
// if insertion was successful, hand over the ownership
copy.release();
}
// else we have a duplicate and we need to free the copy again
}
} }
std::vector<TraverserExpression*> expVertices; std::vector<TraverserExpression*> expVertices;

View File

@ -518,6 +518,20 @@ function readImportantLogLines(logPath) {
} }
function analyzeCoreDump(instanceInfo, options, storeArangodPath, pid) { function analyzeCoreDump(instanceInfo, options, storeArangodPath, pid) {
/*
* We assume the system has core files in /var/tmp/, and we have a gdb.
* you can do this at runtime doing:
*
* echo 1 > /proc/sys/kernel/core_uses_pid
* echo /var/tmp/core-%e-%p-%t > /proc/sys/kernel/core_pattern
*
* or at system startup by altering /etc/sysctl.d/corepattern.conf :
* # We want core files to be located in a central location
* # and know the PID plus the process name for later use.
* kernel.core_uses_pid = 1
* kernel.core_pattern = /var/tmp/core-%e-%p-%t
*/
var command; var command;
command = '('; command = '(';
command += "printf 'bt full\\n thread apply all bt\\n';"; command += "printf 'bt full\\n thread apply all bt\\n';";

View File

@ -734,7 +734,7 @@ typedef unsigned char bool;
#define S_IRGRP _S_IREAD #define S_IRGRP _S_IREAD
#define S_IWGRP _S_IWRITE #define S_IWGRP _S_IWRITE
#define TRI_O_CLOEXEC #define TRI_O_CLOEXEC 0
#define O_RDONLY _O_RDONLY #define O_RDONLY _O_RDONLY
#define TRI_CHDIR _chdir #define TRI_CHDIR _chdir