{"push_id":601987927,"size":2,"distinct_size":2,"ref":"refs/heads/tmp","head":"43c11042698d2a4e07b75e74a6ff994c1a926999","before":"9a1a32554333f21a49dca82c04b9f31943004bd4","commits":[{"sha":"51684597ffcd7e9d9d41991f65e1f290d4efefb9","author":{"email":"aec3f085754bb5d2a19ac140444250fd25fbaed4@fel.cvut.cz","name":"Michal Sojka"},"message":"Use CLOCK_MONOTONIC rather than CLOCK_REALTIME\n\nThis changes the clock used internally by ORTE for timestamps in the\nprotocol and for timing of internal operations. Previously,\nCLOCK_REALTIME was used, probably because it is the default clock used\nby pthread_cond_timedwait(). Using CLOCK_REALTIME has the disadvantage\nthat the time can \"jump\", e.g. when the clock is adjusted by ntpdate.\nThis causes the applications to stop publishing, which results in them\ndisappearing from the domain even through their processes still run.\n\nThe solution implemented in this commit is to switch the clock to\nCLOCK_MONOTONIC, which does not jump. This should have no effect at the\nprotocol level, because the semantic of timestamps is not defined in the\nspec. This was also tested by running the implementations with and\nwithout this change against each other.\n\nIn future, it might be a good idea to use different clocks for\ntimestamps in the protocol and for timing of internal operations (e.g.\nORTEAppSendThread()). I'm not sure what happens in the following two\ncases:\n\n1) When one node is suspended to RAM/disk, CLOCK_MONOTONIC stops for the\n   time of suspension and it is not clear to me what other nodes that\n   run continuously do when the suspended node resumes.\n\n2) When a node is rebooted, the monotonic clock starts from zero, i.e.\n   there is a \"jump\". I'm not sure, whether IDs of the application\n   before and after reboot will be different. UDP ports, that are a part\n   of the ID should be randomized, but the question is how good this\n   randomization is. If the ID is the same before and after reboot some\n   problems might also appear.","distinct":true,"url":"https://api.github.com/repos/CTU-IIG/orte/commits/51684597ffcd7e9d9d41991f65e1f290d4efefb9"},{"sha":"43c11042698d2a4e07b75e74a6ff994c1a926999","author":{"email":"aec3f085754bb5d2a19ac140444250fd25fbaed4@fel.cvut.cz","name":"Michal Sojka"},"message":"Autoconf","distinct":true,"url":"https://api.github.com/repos/CTU-IIG/orte/commits/43c11042698d2a4e07b75e74a6ff994c1a926999"}]}