Patrick LeBlanc
3fe2a4859c
Several fixes / improvements....
...
- normalized pathnames passed to IOC functions
- fixed a race that could leave files orphaned in cloud storage
- fixed a couple small things in Metadatafile
- added metadata sanity checks to Sync fcns to detect truncation &
deletion before they do work
2019-05-30 10:56:45 -05:00
Ben Thompson
9351962942
Add sync forceFlush and modified unit_test to be in working state again.
2019-05-28 15:18:19 -05:00
Patrick LeBlanc
b9d7a2e4c4
Fixed the deadlock in our sanity check code in synchronizer.
2019-05-28 10:51:15 -05:00
Patrick LeBlanc
9a1dc8a4c5
Removed some redundant assertions around deleting files,
...
commented the one in replicator::remove() to get ready for milestone-2,
and to make the unit test work.
2019-05-28 09:57:26 -05:00
Patrick LeBlanc
0cad8308f1
Untangled cache flushing behavior s.t. it should no longer deadlock.
...
Now, something that grabs the sync or cache locks should never block
while holding the lock. Need to review the code to make sure of that.
Also made the recursive mutexes non-recursive again.
2019-05-24 13:02:09 -05:00
Patrick LeBlanc
a32e6c7bb4
Fixed a possible size mismatch in Sync, which could be caused
...
by a truncated logical file.
2019-05-23 13:41:24 -05:00
Patrick LeBlanc
0dcbc10b5e
Added assertions around the file deletes in syncwithjournal.
2019-05-21 16:05:27 -05:00
Patrick LeBlanc
28495c7e90
Fixed a bug in sync with journal where a cloud object would
...
not be deleted after a journal merge.
2019-05-17 16:02:34 -05:00
Patrick LeBlanc
77b682f9cd
Fixed a few problems in Sync.
...
- flushObject() could wait on an element in objNames which
doesn't exist, and so it would not get processed.
- process() would not always delete its job from objNames
- Added add'l debugging printouts and a fallback case for when
syncWithJournal does not find a journal file.
- noticed a name collision between the scoped ops in syncWithJournal (harmless)
2019-05-17 09:09:24 -05:00
Patrick LeBlanc
cd83b26d6b
Was incrementing the wrong iterator, causing infinite loop.
2019-05-16 11:55:43 -05:00
Patrick LeBlanc
aad393dd34
Fixed a bug in Sync where we were using an object through a
...
reference to a shared pointer. A deref of the shared ptr could
trigger the dtor of the object while threads are waiting. Fixed that
by properly copying the shared ptr.
2019-05-13 12:11:16 -05:00
Patrick LeBlanc
53a88fdc09
Fixed a minor bug in error reporting.
2019-05-10 13:49:00 -05:00
Patrick LeBlanc
1ee3c760b1
Changed Sync s.t. it starts processing jobs every 10 seconds instead
...
of every time there's an event. Big improvement in efficiency.
2019-04-25 12:07:30 -05:00
Patrick LeBlanc
7eebc7f06f
Fixed a really dumb error where I had Sync writing 0's over the data.
...
Also added a couple things out of paranoia.
2019-04-24 11:33:34 -05:00
Patrick LeBlanc
3cb971e98b
Tentative, unappetizing, but quick to implement fix for a mem
...
corruption issue where the size of the array passed in was too small.
2019-04-22 12:35:06 -05:00
Patrick LeBlanc
e51bb230ed
Changed the mergeJournal* usage under the assumption that the
...
metadata contains the merged length, not the object's unmerged
length.
2019-04-12 17:23:59 -05:00
Patrick LeBlanc
5443f8662c
Checkpointing some paranoid assertions & some fixes I noticed.
2019-04-12 15:08:01 -05:00
Patrick LeBlanc
88efa1c1f3
Fix to the sync requeuing logic.
2019-04-08 10:48:30 -05:00
Patrick LeBlanc
0be099769b
Cleaned up a kludge, and made the retry behavior requeue a job
...
rather than wait forever to it to work in the same thread.
2019-04-08 10:40:28 -05:00
Patrick LeBlanc
6f234f45c0
More fixes around sync, error handling, and logging.
2019-04-05 16:38:37 -05:00
Patrick LeBlanc
1879499ad3
Fixed a few random things.
2019-04-05 14:10:59 -05:00
Patrick LeBlanc
a813581567
Got it to build. Getting into to some header file madness, but moving on.
2019-03-27 17:44:50 -05:00
Patrick LeBlanc
6bd4b60a7b
Checkpointing mods for IOC::read(). Doesn't build yet.
2019-03-27 16:27:15 -05:00
Ben Thompson
c1a33111f6
Update Metadata and Replicator to use configure file paths. Update unit_tests to work and cleanup as expected.
2019-03-26 17:24:03 -05:00
Patrick LeBlanc
ed6caeb830
Fixed up the Sync unit test, fixed a couple things in S3Storage,
...
it's working now.
2019-03-26 15:58:22 -05:00
Patrick LeBlanc
4ff769ab24
Got a pretty decent unit test for Sync working.
2019-03-22 12:04:36 -05:00
Patrick LeBlanc
323fd18953
Fixed some stuff, got a basic unit test for sync to work.
2019-03-21 15:23:23 -05:00
Patrick LeBlanc
07b4bdd19c
Got the synchronizer stuff to build.
2019-03-21 12:42:10 -05:00
Patrick LeBlanc
2990d320aa
Checkpointing some unit test stuff, won't build yet.
2019-03-20 13:17:16 -05:00
Patrick LeBlanc
97d2844994
Made Sync take into account that object names may change
...
beteween when a job is created and when it is run.
2019-03-19 17:24:32 -05:00
Patrick LeBlanc
6366a54bbc
Revamped/simplified the Sync impl. Won't build yet.
2019-03-18 14:49:25 -05:00
Patrick LeBlanc
931cb9fb54
First cut of synchronizer is done, won't build yet.
2019-03-15 14:08:19 -05:00
Patrick LeBlanc
9906ff9efb
Check pointing some changes I made all over the place
...
working on Synchronizer. Won't build yet.
2019-03-11 16:09:07 -05:00
Patrick LeBlanc
df6675db01
Checkpointing additions to Cache
2019-03-07 13:18:38 -06:00