Ticket #3 (closed task: fixed)
Merge Win32 branch
| Reported by: | chris | Owned by: | chris |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.11 |
| Component: | bbackupd | Version: | trunk |
| Keywords: | windows win32 merge branch | Cc: |
Change History
comment:1 Changed 5 years ago by martin
- Owner changed from ben to chris
- Type changed from defect to task
comment:2 Changed 5 years ago by chris
Please review http://bbdev.fluffy.co.uk/trac/changeset/817
comment:3 Changed 5 years ago by chris
Please review http://bbdev.fluffy.co.uk/trac/changeset/814
comment:4 Changed 5 years ago by chris
Please review http://bbdev.fluffy.co.uk/trac/changeset/798
comment:5 Changed 5 years ago by chris
Please review http://bbdev.fluffy.co.uk/trac/changeset/749
comment:6 Changed 5 years ago by chris
Please review http://bbdev.fluffy.co.uk/trac/changeset/819
comment:10 Changed 5 years ago by chris
Please review [829]
comment:11 Changed 5 years ago by chris
Please review [831]
comment:12 Changed 5 years ago by chris
Please review 832
comment:13 Changed 5 years ago by chris
Please review [833]
comment:14 Changed 5 years ago by martin
- Status changed from new to assigned
- Owner changed from chris to martin
[817] ok to merge
[814] ok to merge
[798] ok to merge but lines 277 to 283 (catch BoxException?) are redundant because BoxException? is derived from std::exception.
[749] ok to merge
comment:15 Changed 5 years ago by martin
- Owner changed from martin to chris
- Status changed from assigned to new
comment:16 Changed 5 years ago by chris
Please review [835]
comment:17 Changed 5 years ago by chris
Thanks Martin, I've merged 817, 814, 798 (with change) and 749.
comment:19 Changed 5 years ago by martin
comment:20 Changed 5 years ago by chris
Thanks again Martin, please review [840].
comment:21 Changed 5 years ago by chris
comment:22 Changed 5 years ago by chris
Please review [860]
comment:23 Changed 5 years ago by chris
Please review [861]
comment:24 Changed 5 years ago by chris
(In [863]) * bin/bbstored/BackupStoreDaemon.h
- Reinstate SendMessageToHousekeepingProcess?() on Win32, but make it do nothing (refs #3)
comment:25 Changed 5 years ago by chris
comment:26 Changed 5 years ago by chris
comment:27 Changed 5 years ago by chris
comment:28 Changed 5 years ago by chris
comment:29 Changed 5 years ago by chris
comment:30 Changed 5 years ago by chris
(In [873]) * infrastructure/makebuildenv.pl.in
Support multiple implicit dependencies
Add lib/win32 as an implicit dependency on Win32
Make lib/common depend on lib/win32 on Win32
Fix space between test file name platform executable extension, and between executable name and arguments, in test shell scripts
Add support for compiling resource files (.rc) on Win32
Fix dependencies to avoid unnecessary rebuilds when not using BSD make
Code cleanups
Fix typos
(refs #3)
comment:31 Changed 5 years ago by chris
comment:32 Changed 5 years ago by chris
comment:33 Changed 5 years ago by chris
comment:34 Changed 5 years ago by chris
Please review [881]
comment:35 Changed 5 years ago by chris
comment:36 Changed 5 years ago by chris
comment:38 Changed 5 years ago by chris
comment:39 Changed 5 years ago by chris
comment:40 Changed 5 years ago by chris
comment:41 Changed 5 years ago by chris
comment:42 Changed 5 years ago by chris
comment:43 Changed 5 years ago by martin
comment:44 Changed 5 years ago by chris
comment:45 Changed 5 years ago by chris
comment:46 Changed 5 years ago by chris
comment:47 Changed 5 years ago by chris
comment:48 Changed 5 years ago by chris
Define a suitable constant for invalid socket handles, for use in SocketStream?.cpp
comment:49 Changed 5 years ago by chris
Please review [906]
comment:50 Changed 5 years ago by chris
comment:51 Changed 5 years ago by chris
comment:52 Changed 5 years ago by chris
comment:53 Changed 5 years ago by chris
comment:54 Changed 5 years ago by chris
comment:55 Changed 5 years ago by chris
comment:56 Changed 5 years ago by chris
comment:57 Changed 5 years ago by chris
comment:58 Changed 5 years ago by chris
comment:59 Changed 5 years ago by chris
comment:60 Changed 5 years ago by chris
comment:61 Changed 5 years ago by chris
comment:62 Changed 5 years ago by chris
comment:63 Changed 5 years ago by chris
comment:64 Changed 5 years ago by chris
comment:65 Changed 5 years ago by chris
comment:66 Changed 5 years ago by chris
Added a RunCommand?() function which converts UNIX paths to native before calling ::system() on Win32.
comment:67 Changed 5 years ago by chris
Call RunCommand?() instead of ::system to handle native paths better
comment:68 Changed 5 years ago by chris
comment:69 Changed 5 years ago by chris
comment:70 Changed 5 years ago by chris
comment:71 Changed 5 years ago by chris
comment:72 Changed 5 years ago by chris
Use RunCommand? instead of ::system to convert UNIX paths to native
comment:73 Changed 5 years ago by chris
comment:74 Changed 5 years ago by chris
comment:75 Changed 5 years ago by chris
comment:76 Changed 5 years ago by chris
comment:77 Changed 5 years ago by chris
comment:78 Changed 5 years ago by chris
comment:79 Changed 5 years ago by chris
comment:80 Changed 5 years ago by chris
comment:81 Changed 5 years ago by chris
comment:82 Changed 5 years ago by chris
comment:83 Changed 5 years ago by chris
comment:84 Changed 5 years ago by chris
comment:85 Changed 5 years ago by chris
comment:86 Changed 5 years ago by chris
comment:87 Changed 5 years ago by chris
comment:88 Changed 5 years ago by chris
comment:89 Changed 5 years ago by chris
comment:90 Changed 5 years ago by chris
comment:91 Changed 5 years ago by chris
comment:92 Changed 5 years ago by chris
comment:93 Changed 5 years ago by chris
comment:94 Changed 5 years ago by chris
comment:95 Changed 5 years ago by chris
comment:96 Changed 5 years ago by chris
comment:97 Changed 5 years ago by chris
comment:98 Changed 5 years ago by chris
comment:99 Changed 5 years ago by chris
comment:100 Changed 5 years ago by chris
comment:101 Changed 5 years ago by chris
Hi Martin,
Currently outstanding as I understand it:
- [819] waiting for me to implement InvisibleTempFileStream?
- [840] waiting for Ben to be satisfied that there are sufficient tests of this functionality
- [843] waiting for me to rewrite to re-enable locking on Win32
- [860] approved, already applied?
- [861] waiting on me to remove #ifdefs
- [862] needs InvisibleTempFileStream?
- [863] approved, already applied?
- [865]
- [867]
- [869]
- [871]
- [873]
- [875] rejected
- [877]
- [879]
- [881] approved, already applied?
- [883]
- [885]
- [887]
- [889]
- [892] rejected, but the comment spelling fix should be applied
- [894]
- [896] rejected, needs a rewrite as Ben suggested
- [898]
- [900]
- [902]
- [904]
- [906]
- [908]
- [910]
- [912]
- [913]
- [914]
- [915]
- [916]
- [917]
- [918]
- [920]
- [921]
- [922] rejected DIRECTORY_SEPARATOR, but keep the f.Close();
- [923]
- [927]
- [928]
- [930]
- [931]
- [934]
- [935]
- [936]
- [937]
- [938]
- [940]
- [941]
- [942]
- [943]
- [944]
- [945]
- [946]
- [947]
- [948]
- [949]
- [950]
- [951]
- [952]
- [953]
- [954]
- [955]
- [956]
- [957] and [964]
- [958] and [963]
- [959]
- [960]
- [961]
- [962]
- [965]
- [966]
- [968]
comment:102 Changed 5 years ago by martin
comment:103 Changed 5 years ago by martin
(Just reformatting)
comment:104 Changed 5 years ago by chris
comment:105 Changed 5 years ago by chris
comment:106 Changed 5 years ago by chris
comment:107 Changed 5 years ago by martin
- [898] ok
- [900] ok
- [902] ok
- [904] & [906] ok (these should have been one patch, both implementing the same change)
- [908] ok, though ifdefs such as this one would be better based on the feature (ie. presence of fcntl/O_NONBLOCK) rather than the platform. We'll need to revisit these later.
- [910] ok
- [912] ok
- [913] ok
- [914] ok
- [915] ok
- [916] ok
- [917] ok
- [918] to discuss
- [920] ok
- [921] ok
comment:108 Changed 5 years ago by chris
comment:109 Changed 5 years ago by chris
comment:111 Changed 5 years ago by chris
Please review [1017] for merge.
comment:112 Changed 5 years ago by chris
comment:113 Changed 5 years ago by chris
Sorry, please ignore [1019].
comment:114 Changed 5 years ago by chris
comment:115 Changed 5 years ago by chris
comment:116 Changed 5 years ago by chris
comment:117 Changed 5 years ago by chris
comment:118 Changed 5 years ago by chris
comment:119 Changed 5 years ago by chris
comment:120 Changed 5 years ago by chris
comment:121 Changed 5 years ago by chris
comment:122 Changed 5 years ago by chris
comment:123 Changed 5 years ago by chris
(In [1037]) Use BoxPlatform? to see if we are building on Windows (refs #3)
comment:124 Changed 5 years ago by chris
comment:125 Changed 5 years ago by chris
comment:126 Changed 5 years ago by chris
comment:127 Changed 5 years ago by chris
comment:128 Changed 5 years ago by chris
comment:129 Changed 5 years ago by chris
comment:130 Changed 5 years ago by chris
comment:131 Changed 5 years ago by chris
comment:132 Changed 5 years ago by chris
(In [1059]) Copy our template config.h to BoxConfig?.h when compiling with MSVC. (refs #3)
comment:133 Changed 5 years ago by chris
comment:134 Changed 5 years ago by chris
(In [1062]) Revert patch [825] (mostly).
Re-enable locking code on Win32 (although it's never used).
Use InvisibleTempFileStream? to ensure that the temporary file is always deleted. (refs #3)
comment:135 Changed 5 years ago by chris
comment:136 Changed 5 years ago by chris
comment:137 Changed 5 years ago by chris
comment:138 Changed 5 years ago by chris
comment:139 Changed 5 years ago by chris
comment:140 Changed 5 years ago by chris
comment:141 Changed 5 years ago by chris
comment:142 Changed 5 years ago by chris
comment:143 Changed 5 years ago by chris
comment:144 Changed 5 years ago by chris
comment:145 Changed 5 years ago by chris
(In [1080]) Remove #ifdefs around geteuid(), re-enable use of fake version under Win32 as requested by Ben.
Restore serialised AttrModificationTime? under Win32 by passing to emu_utimes(). (refs #3)
comment:146 Changed 5 years ago by chris
(In [1081]) Delete existing entries to allow reuse of a BackupStoreDirectory? object. (refs #3)
comment:147 Changed 5 years ago by chris
(In [1082]) Add new return codes from BackupClientRestore? for use on Win32. (refs #3)
comment:148 Changed 5 years ago by chris
comment:149 Changed 5 years ago by chris
(In [1084]) Implement LocalProcessStream? on Win32. (refs #3)
comment:150 Changed 5 years ago by chris
(In [1085]) Use -1 for INVALID_SOCKET_HANDLE to ensure that it's always less than zero, so that non-conditional code in SocketStream?.cpp works properly.
Add a method to determine if a socket stream has been attached to a socket yet. (refs #3)
comment:151 Changed 5 years ago by chris
comment:152 Changed 5 years ago by chris
(In [1087]) Use BoxConfig?-MSVC.h and BoxVersion?.h when compiling with MSVC. (refs #3)
comment:153 Changed 5 years ago by chris
comment:154 Changed 5 years ago by chris
comment:155 Changed 5 years ago by chris
(In [1090]) Set the filename to "HANDLE" under Win32 when initialising from an existing handle.
Handle ERROR_BROKEN_PIPE as EOF when using FileStream? to read from a pipe in LocalProcessStream?. (refs #3)
comment:156 Changed 5 years ago by chris
(In [1091]) Add a new CommonException? type, AccessDenied? (very useful for debugging access errors, and needed by Boxi to report a sensible error to the user). (refs #3)
comment:157 Changed 5 years ago by chris
(In [1092]) Wait longer for server to die in KillServer? (takes about 5 seconds on my box). (refs #3)
comment:158 Changed 5 years ago by chris
comment:159 Changed 5 years ago by chris
comment:160 Changed 5 years ago by chris
comment:161 Changed 5 years ago by martin
- [923] ok
- [927] ok
- [928] ok
- [930] ok
- [931] ok
- [934] ok
- [935] ok
- [936] ok
- [937] ok
- [938] ok
- [940] ok
- [941] ok
- [942] ok
- [943] ok
- [944] ok
- [945] ok
- [946] ok
- [947] ok
- [948] ok
- [949] ok
- [950] ok
- [951] ok
- [952] ok
- [953] ok
- [954] ok
- [955] ok
- [956] ok
- [957] and [964] ok
- [958] and [963] ok
- [959] ok
- [960] ok
- [961] ok
- [962] ok
- [965] ok
- [966] ok
- [968] ok
comment:162 Changed 5 years ago by chris
comment:163 Changed 5 years ago by chris
comment:164 Changed 5 years ago by chris
Thanks Martin!
Merged [923] [927] [928] [930] [931] [934] [935] [936] [937] [938] [940] [941] [942] [943] [944] [945] [946] [947] [948] [949] [950] [951] [952] [953] [954] [955] [956] [957] [964] [958] [963] [959] [960] [961] [962] [965] [966] [968] to trunk.
Still outstanding: [840] [995] [1013] [1014] [1015] [1016] [1017] [1022] [1027] [1029] [1030] [1031] [1032] [1035] [1036] [1037] [1049] [1050]+[1051] [1052] [1053] [1054] [1055] [1058] [1059] [1062] [1064] [1070] [1071] [1072] [1073] [1075] [1076] [1077] [1078] [1079] [1080] [1081] [1082] [1083] [1084] [1085] [1086] [1087] [1088] [1089] [1090] [1091] [1092] [1094] [1095] [1096] [1113] [1114].
comment:165 Changed 5 years ago by chris
comment:166 Changed 5 years ago by chris
comment:167 Changed 5 years ago by chris
comment:168 Changed 5 years ago by chris
comment:169 Changed 5 years ago by chris
comment:170 Changed 5 years ago by chris
(In [1152]) Declare MEMLEAKFINDER_INIT and MEMLEAKFINDER_NO_LEAKS macros which reference function and class in DebugMemLeakFinder? only in debug mode (refs #3)
comment:171 Changed 5 years ago by chris
(In [1153]) Free backtrace strings even in debug mode by suppressing warnings from DebugMemLeakFinder?, to avoid a memory leak (refs #3)
comment:172 Changed 5 years ago by chris
comment:173 Changed 5 years ago by chris
comment:174 Changed 5 years ago by chris
(In [1159]) * Track memory leaks in allocations via the standard libraries, and
avoid malloc/delete mismatches, by overriding standard new operator.
- Added another global enable flag to memleak finder, which is used to mark the end of static allocations and the start of dynamic code, since the memory leak detection is done before cleanup of static objects.
- Added a public guard class, to allow safe scoped disabling of memory leak detection.
- Added InternalAllocGuard? to protect against recursive loops when allocating memory inside the memory leak checker. (refs #3)
comment:175 Changed 5 years ago by chris
comment:176 Changed 5 years ago by chris
comment:177 Changed 5 years ago by chris
comment:178 Changed 5 years ago by chris
comment:179 Changed 5 years ago by chris
comment:180 Changed 5 years ago by chris
comment:181 Changed 5 years ago by chris
comment:182 Changed 5 years ago by martin
comment:183 Changed 5 years ago by martin
comment:184 Changed 5 years ago by martin
- [1050] + [1051] ok
- [1052] ok
- [1053] ok
- [1054] ok
- [1055] ok
- [1058] ok - this case insensitive stuff should probably be more generic. I believe HFS+ on Mac OS X is also case insensitive so this and other related changesets should work there too
- [1059] ok
- [1062] ok
- [1064] ok
- [1070] ok
- [1071] ok
- [1072] I'd like to know the underlying issue here, it's not clear to me why this is the right fix
- [1073] ok
- [1075] ok
- [1076] why are you using TRUE instead of true?
- [1077] ok
- [1078] I presume it works, so ok to merge. style comments: in the regexp you could have used (....){5} instead of having five of them. Not sure why you couldn't just ..\..\..\..\.. instead. Also why is require using \ but open using /?
- [1079] macros are nasty, prefer inline fns. Why undefining fstat only in these files? (needs explanation I think)
- [1080] ok
comment:185 Changed 5 years ago by martin
- [1076] ok
comment:186 Changed 5 years ago by chris
(In [1171]) Use gettimeofday() to increase accuracy of GetCurrentBoxTime?() on platforms which support it. Fixes busy waits for 1 second in backup client when time for next backup is not on a 1 second boundary (which it never is). (refs #3)
comment:188 Changed 5 years ago by chris
comment:189 Changed 5 years ago by chris
comment:190 Changed 5 years ago by chris
comment:191 Changed 5 years ago by chris
(In [1181]) Added a test for diff termination if MaximumDiffingTime? is exceeded (refs #3, refs #9)
comment:192 Changed 5 years ago by chris
(In [1184]) Replace old-style setitimers for KeepAliveTime and MaximumDiffingTime? with new Timer objects. (refs #3, refs #9)
comment:193 Changed 5 years ago by chris
comment:194 Changed 5 years ago by chris
comment:195 Changed 5 years ago by chris
comment:196 Changed 5 years ago by chris
comment:197 Changed 5 years ago by chris
comment:198 Changed 5 years ago by chris
comment:199 Changed 5 years ago by chris
(In [1191]) Moved KeepAlive? timer to BackupClientContext? object.
Made timeout initialisation non-static, and a property of the context object. (perhaps should be in rParams, I know).
comment:200 Changed 5 years ago by chris
comment:201 Changed 5 years ago by chris
comment:202 Changed 5 years ago by chris
(In [1195]) Compile fix: include MemLeakFinder?.h even on release builds (refs #3)
comment:203 Changed 5 years ago by chris
comment:204 Changed 5 years ago by chris
Hi Martin,
Regarding [1014], I tried to put "-lpcre" in otherlibs, and the compile check works, but the autoconf macro doesn't add "-lpcre" to CXXFLAGS, so actual compiles fail.
I wasn't sure what to do about that, but adding "-lpcre" to the first argument does update CFLAGS correctly. Can you think of a better way to do this?
Cheers, Chris.
comment:205 Changed 5 years ago by chris
Merged [840].
comment:206 Changed 5 years ago by chris
comment:207 Changed 5 years ago by chris
comment:208 Changed 5 years ago by chris
comment:209 Changed 5 years ago by chris
Merged: [995] [1013] [1015] [1017] [1022] [1027+1031] [1029] [1030] [1032] [1035] [1036] [1050]+[1051] [1052] [1054] [1058] [1070] [1071] [1073] [1076] [1077] [1078] [1080]
Waiting on Martin: [1014] [1049] [1079]
Waiting on dependencies:
- [1055], on [1016], should be applied at the same time
- [1059], on [1075] (ok) and [1087] (not yet reviewed)
- [1062], on [1016]
Already applied (sorry): [1037] [1053] [1064]
Regarding [1037], this is a compile fix, should have been part of [900].
Regarding [1049], sorry, I don't see what's wrong with the error message on line 976? It makes sense to me.
Regarding [1079], RaidFile? uses a lot of POSIX functions which are not emulated by our library, and which work with integer file handles rather than HANDLEs. Unfortunately, because of this, they are not compatible with our emulated fstat. It's easier to undefine our emulated fstat, and use the system fstat() instead, rather than implement emulations of all the other POSIX functions which RaidFile? uses.
Still outstanding: [1081] [1082] [1083] [1084] [1085] [1086] [1087] [1088] [1089] [1090] [1091] [1092] [1094] [1095] [1113] [1114] [1143] [1144] [1146] [1150] [1151] [1152] [1153] [1155] [1156] [1159]+[1195] [1160] [1161] [1164] [1169] [1171] [1176] [1177] [1178] [1181] [1184] [1185] [1186] [1187] [1188] [1189] [1190] [1191] [1192] [1193] [1196] [1198] [1222] [1223]
Rejected: [1096]
comment:210 Changed 5 years ago by chris
comment:211 Changed 5 years ago by chris
Please review [1224].
comment:212 Changed 5 years ago by chris
comment:213 Changed 5 years ago by chris
comment:214 Changed 5 years ago by chris
comment:215 Changed 5 years ago by chris
comment:216 Changed 5 years ago by chris
comment:217 Changed 5 years ago by chris
comment:218 Changed 5 years ago by chris
comment:219 Changed 5 years ago by chris
(In [1234]) Added a new config option, LogAllFileAccess, which will log access to every file and scanning every directory. The current implementation is taken straight from the Boxi branch. To be extended shortly. (refs #3)
comment:220 Changed 5 years ago by chris
comment:221 Changed 5 years ago by chris
comment:222 Changed 5 years ago by chris
comment:223 Changed 5 years ago by chris
comment:224 Changed 5 years ago by chris
comment:225 Changed 5 years ago by chris
comment:226 Changed 5 years ago by chris
comment:227 Changed 5 years ago by chris
comment:228 Changed 5 years ago by chris
comment:229 Changed 5 years ago by chris
comment:230 Changed 5 years ago by chris
comment:231 Changed 5 years ago by chris
comment:232 Changed 5 years ago by chris
comment:233 Changed 5 years ago by chris
comment:234 Changed 5 years ago by chris
comment:235 Changed 5 years ago by chris
comment:236 Changed 5 years ago by chris
(In [1252]) Add a new logging level, NOTICE, between INFO and WARNING (justification: we need two levels of output for LogAllFileAccess, neither of which are warnings, one is very verbose, but must not be compiled out like TRACE).
Make Loggers default to logging everything.
Make the global log level filter work. (refs #3)
comment:237 Changed 5 years ago by chris
comment:238 Changed 5 years ago by chris
comment:239 Changed 5 years ago by chris
(In [1255]) Throw CommonException? AccessDenied? if we didn't get access to the file, for better error description (refs #3)
comment:240 Changed 5 years ago by chris
comment:241 Changed 5 years ago by chris
(In [1257]) Log AccessDenied? errors in a more concise form than general exceptions (refs #3)
comment:242 Changed 5 years ago by chris
comment:243 Changed 5 years ago by chris
comment:244 Changed 5 years ago by chris
comment:245 Changed 5 years ago by chris
comment:246 Changed 5 years ago by chris
(In [1262]) Allow suppressing warnings about unsupported file types by excluding those files by name, using ExcludeFile? (refs #3)
comment:247 Changed 5 years ago by chris
(In [1263]) Added a BufferedStream? class that can be wrapped around an IOStream to improve read performance when many small reads will be performed, e.g. while reading directories and during housekeeping. (refs #3)
comment:248 Changed 5 years ago by chris
(In [1264]) Use BufferedStream? to speed up housekeeping by about ten times. (refs #3)
comment:249 Changed 5 years ago by chris
(In [1265]) Moved MakeFullPath? into its own library file so that we can share it (BackupQueries? needs it too) (refs #3)
comment:250 Changed 5 years ago by chris
comment:251 Changed 5 years ago by chris
comment:252 Changed 5 years ago by chris
comment:253 Changed 5 years ago by chris
comment:254 Changed 5 years ago by chris
comment:255 Changed 5 years ago by chris
comment:256 Changed 5 years ago by chris
comment:257 Changed 5 years ago by chris
(In [1274]) Make BackupClientRestoreDir? return a result code compatible with BackupClientRestore? (refs #3)
comment:258 Changed 5 years ago by chris
comment:259 Changed 5 years ago by chris
comment:260 Changed 5 years ago by chris
comment:261 Changed 5 years ago by chris
comment:262 Changed 5 years ago by chris
comment:263 Changed 5 years ago by chris
comment:264 Changed 5 years ago by chris
(In [1352]) Simplify check for PERL
Define substitution TARGET_PERL and preprocessor PERL_EXECUTABLE to a native Perl (not Cygwin) on Win32, since Cygwin perl will not run inside bbackupd for unit tests (e.g. SyncAllowScript?).
(refs #3)
comment:265 Changed 5 years ago by chris
comment:266 Changed 5 years ago by chris
comment:267 Changed 5 years ago by chris
comment:268 Changed 5 years ago by chris
comment:269 Changed 5 years ago by chris
comment:270 Changed 5 years ago by chris
comment:271 Changed 5 years ago by chris
comment:272 Changed 5 years ago by chris
comment:273 Changed 5 years ago by chris
comment:274 Changed 5 years ago by chris
comment:275 Changed 5 years ago by chris
comment:276 Changed 5 years ago by chris
comment:277 Changed 5 years ago by chris
comment:278 Changed 5 years ago by chris
comment:279 Changed 5 years ago by chris
comment:280 Changed 5 years ago by chris
comment:281 Changed 5 years ago by chris
comment:282 Changed 5 years ago by chris
comment:283 Changed 5 years ago by chris
(In [1387]) Moved SendCommands?(), HUPServer(), KillServer?() to lib/server/ServerCommands.h. All of these use lib/server/WinNamedPipeStream on Win32, so they don't belong in lib/common.
Made LaunchServer?() work on Win32.
Added constants for paths to executables, for use in tests, removing the need for #ifdefs and clumsy DIRECTORY_SEPARATORs in paths.
Added terminate_bbackupd() and wait_for_operation() functions.
Update unit tests to #include "ServerControl?.h" if they need it.
(refs #3)
comment:284 Changed 5 years ago by chris
comment:285 Changed 5 years ago by chris
comment:286 Changed 5 years ago by chris
comment:287 Changed 5 years ago by chris
comment:288 Changed 5 years ago by chris
(In [1395]) Catch exceptions thrown by closing the WinNamedPipeStream? during shutdown and suppress them. (refs #3, merges [1284])
comment:289 Changed 5 years ago by chris
comment:290 Changed 5 years ago by chris
comment:291 Changed 5 years ago by chris
comment:292 Changed 5 years ago by chris
comment:293 Changed 5 years ago by chris
comment:294 Changed 5 years ago by chris
(In [1401]) Improve GetErrorMessage?() by including the error number/code in the message (helps debugging on foreign langauge versions of Windows) (refs #3, merges [1364])
comment:295 Changed 5 years ago by chris
comment:296 Changed 5 years ago by chris
comment:297 Changed 5 years ago by chris
comment:298 Changed 5 years ago by chris
comment:299 Changed 5 years ago by chris
comment:300 Changed 5 years ago by chris
comment:301 Changed 5 years ago by chris
comment:302 Changed 5 years ago by chris
(In [1409]) Use #defines to replace POSIX functions with emulated ones on MinGW, like we do on MSVC. This allows us to #undef them when we really need to use the original platform function (if available).
Disable emulated fstat() in raidfile (and use the platform one) by undefining fstat, since it doesn't use the other emulated file handling functions, or need Unicode support, and it can't take a filehandle returned by open() (only openfile()).
comment:303 Changed 5 years ago by chris
(In [1410]) Remove #define BOX_VERSION since we now get it from BoxVersion?.h via BoxPlatform?.h when building with MSVC, and from the Makefiles when building with MinGW. (refs #3, merges part of [634])
comment:304 Changed 5 years ago by chris
comment:305 Changed 5 years ago by chris
comment:306 Changed 5 years ago by chris
comment:307 Changed 5 years ago by chris
comment:308 Changed 5 years ago by chris
comment:309 Changed 5 years ago by invisnet
[1083] An OVERLAPPED struct needs to be cleared before every use when talking to pipes, not just the first time.
The pipe is in message mode; why would there be more data in the buffer than is being asked for? Use stream mode if this is supposed to be a generic class, or provide some way to select the mode.
memcpy() is not guaranteed to work with overlapping buffers (line 288). Use memmove() instead.
comment:310 Changed 5 years ago by chris
comment:311 Changed 5 years ago by chris
comment:312 Changed 5 years ago by chris
comment:313 Changed 5 years ago by chris
comment:314 Changed 5 years ago by chris
comment:315 Changed 5 years ago by chris
comment:316 Changed 5 years ago by chris
comment:317 Changed 5 years ago by chris
(In [1428]) Add a new notification constant, NotifyEvent_BackupError, for use when an exception occurs during the backup.
Make bbackupd notify sysadmin when an exception occurs during the backup, using this error code, and the notification string "backup-error".
Change NotifyEventMAX to be one greater than the highest notification constant, makes code more maintainable.
(refs #3)
comment:318 Changed 5 years ago by chris
comment:319 Changed 5 years ago by chris
(In [1435]) Move lib/common/ServerControl.h to lib/server where it belongs, since it uses server functions (WinNamedPipeStream? on win32) (refs #3)
comment:320 Changed 5 years ago by chris
comment:321 Changed 5 years ago by chris
comment:322 Changed 5 years ago by chris
comment:323 Changed 5 years ago by chris
comment:324 Changed 5 years ago by chris
comment:325 Changed 5 years ago by chris
comment:326 Changed 5 years ago by chris
comment:327 Changed 5 years ago by chris
comment:328 Changed 5 years ago by chris
comment:329 Changed 5 years ago by chris
comment:330 Changed 5 years ago by chris
comment:331 Changed 5 years ago by chris
comment:332 Changed 5 years ago by chris
comment:333 Changed 5 years ago by chris
comment:334 Changed 5 years ago by chris
comment:335 Changed 5 years ago by chris
comment:336 Changed 5 years ago by chris
comment:337 Changed 5 years ago by chris
(In [1481]) iUse our new ClientException? codes for clock skew and archive problems. (refs #3, merges part of [1459])
comment:338 Changed 5 years ago by chris
(In [1482]) Better handle a case where a force-sync command comes in immediately after (or during) a sync, i.e. less than MinimumFileAge? seconds after the last one. In this case, just move back the syncPeriodStart by 1 second. (refs #3, merges part if [1459])
comment:339 Changed 5 years ago by chris
comment:340 Changed 5 years ago by chris
comment:341 Changed 5 years ago by chris
comment:342 Changed 5 years ago by chris
comment:343 Changed 5 years ago by chris
comment:344 Changed 5 years ago by chris
comment:345 Changed 5 years ago by chris
comment:346 Changed 5 years ago by chris
comment:347 Changed 5 years ago by chris
comment:348 Changed 5 years ago by chris
comment:349 Changed 5 years ago by chris
comment:350 Changed 5 years ago by chris
comment:351 Changed 5 years ago by chris
comment:352 Changed 5 years ago by chris
comment:353 Changed 5 years ago by chris
comment:354 Changed 5 years ago by chris
comment:355 Changed 5 years ago by invisnet
[1486] I don't know if I can do this, but I'm going to try :-)
I'd like to veto this change. You seem to have done a partial re-implementation of a completion port - see CreateIoCompletionPort? and friends.
comment:356 Changed 5 years ago by chris
comment:357 Changed 5 years ago by chris
comment:358 Changed 5 years ago by chris
comment:359 Changed 5 years ago by chris
comment:360 Changed 5 years ago by chris
comment:361 Changed 5 years ago by chris
comment:362 Changed 5 years ago by chris
comment:363 Changed 5 years ago by chris
(In [1522]) Don't log errors or throw exceptions when we get ERROR_NO_DATA, which just means that the pipe is being closed. Treat it as a normal remote close (EOF) instead.
Don't log an error if DisconnectNamedPipe? tells us that the remote end already closed the pipe (ERROR_PIPE_NOT_CONNECTED).
Treat ERR_PIPE_NOT_CONNECTED during pipe reads as EOF as well.
Improve logging of pipe errors by including the error message.
comment:364 Changed 5 years ago by chris
comment:365 Changed 5 years ago by chris
comment:366 Changed 5 years ago by chris
comment:367 Changed 5 years ago by chris
comment:368 Changed 5 years ago by chris
comment:369 Changed 5 years ago by chris
comment:370 Changed 5 years ago by chris
comment:371 Changed 5 years ago by chris
comment:372 Changed 5 years ago by chris
comment:373 Changed 5 years ago by chris
comment:374 Changed 5 years ago by chris
comment:375 Changed 5 years ago by chris
comment:376 Changed 5 years ago by chris
comment:377 Changed 5 years ago by chris
comment:378 Changed 5 years ago by chris
(In [1547]) Declare global std::string variables that hold extra arguments for executables run in tests, to be implemented in a follow-up patch.
ConvertPaths?, LaunchServer? and RunCommand? all take std::string references instead of char*.
Move safe_sleep from test/common to lib/server/Test.h so that all tests can use it.
(refs #3)
comment:379 Changed 5 years ago by chris
comment:380 Changed 5 years ago by chris
comment:381 Changed 5 years ago by chris
comment:382 Changed 5 years ago by chris
comment:383 Changed 5 years ago by chris
comment:384 Changed 5 years ago by chris
(In [1553]) Add --bbackupd-args and --bbstored-args options, which may be used to pass additional command-line parameters to bbackupd and bbstored in some tests.
Add -t and -T options, which add tags and timestamps to log messages using the logging framework inside the tests themselves.
Now you can do things like:
./t -Tt test \
--bbackupd-args="-VTkt bbackupd" \ --bbstored-args="-VTkt bbstored"
and you will get output from the test itself, the bbackupd and bbstored daemons, all interleaved, timestamped and tagged on the console.
This is very useful for debugging synchronisation problems, where interleaved output from bbackupd and bbstored in the system logs is not enough, because you want to see exactly how they interact with the test, or you don't have access to the system logs.
(refs #3)
comment:385 Changed 5 years ago by chris
comment:386 Changed 5 years ago by chris
comment:387 Changed 5 years ago by chris
comment:388 Changed 5 years ago by chris
comment:389 Changed 5 years ago by chris
comment:390 Changed 5 years ago by chris
(In [1559]) Test that SyncAllowScript? is executed and can pause backup for the correct amount of time. (refs #3)
comment:391 Changed 5 years ago by chris
comment:392 Changed 5 years ago by chris
comment:393 Changed 5 years ago by chris
comment:394 Changed 5 years ago by chris
comment:395 Changed 5 years ago by chris
(In [1572]) Use LaunchServer? to remove the need for some #ifdefs.
Use directory separator constant instead of forward slash.
Add some blank lines for readability. (refs #3)
comment:396 Changed 5 years ago by chris
comment:397 Changed 5 years ago by chris
comment:398 Changed 5 years ago by chris
comment:399 Changed 5 years ago by chris
comment:400 Changed 5 years ago by chris
(In [1581]) Check that Exclude and AlwaysInclude? configurations actually work as they should. (refs #3, merges [711])
comment:401 Changed 5 years ago by chris
comment:402 Changed 5 years ago by chris
comment:403 Changed 5 years ago by chris
comment:404 Changed 5 years ago by chris
comment:405 Changed 5 years ago by chris
comment:406 Changed 5 years ago by chris
(In [1587]) Test that PartialReadStream? and ReadGatherStream? can handle streams over 2GB in size. (refs #3)
comment:407 Changed 5 years ago by chris
comment:408 Changed 5 years ago by chris
comment:409 Changed 5 years ago by chris
(In [1590]) Use ReadLoggingStream? to log progress of file uploads. (refs #3)
comment:410 Changed 5 years ago by chris
comment:411 Changed 5 years ago by chris
comment:412 Changed 5 years ago by chris
comment:413 Changed 5 years ago by chris
(In [1594]) Improve log message for NotifyFileUploading?(). (refs #3)
comment:414 Changed 5 years ago by chris
comment:415 Changed 5 years ago by chris
comment:416 Changed 5 years ago by chris
comment:417 Changed 5 years ago by chris
comment:418 Changed 5 years ago by chris
comment:419 Changed 5 years ago by chris
comment:420 Changed 5 years ago by chris
comment:421 Changed 5 years ago by chris
comment:422 Changed 5 years ago by chris
comment:423 Changed 5 years ago by chris
comment:424 Changed 5 years ago by chris
comment:425 Changed 5 years ago by chris
comment:426 Changed 5 years ago by chris
comment:427 Changed 5 years ago by chris
comment:428 Changed 5 years ago by chris
comment:429 Changed 5 years ago by chris
comment:430 Changed 5 years ago by chris
comment:431 Changed 5 years ago by chris
comment:432 Changed 5 years ago by chris
comment:433 Changed 5 years ago by chris
comment:434 Changed 5 years ago by chris
comment:435 Changed 5 years ago by chris
comment:436 Changed 5 years ago by chris
comment:437 Changed 5 years ago by chris
comment:438 Changed 5 years ago by chris
comment:439 Changed 5 years ago by chris
comment:440 Changed 5 years ago by chris
comment:441 Changed 5 years ago by chris
comment:442 Changed 5 years ago by chris
comment:443 Changed 5 years ago by chris
comment:444 Changed 5 years ago by chris
comment:445 Changed 5 years ago by chris
comment:446 Changed 5 years ago by chris
comment:447 Changed 5 years ago by chris
comment:448 Changed 5 years ago by chris
comment:449 Changed 5 years ago by chris
comment:450 Changed 5 years ago by chris
comment:451 Changed 5 years ago by chris
comment:452 Changed 5 years ago by chris
comment:453 Changed 5 years ago by chris
comment:454 Changed 5 years ago by chris
comment:455 Changed 5 years ago by chris
(In [1720]) Hopefully work around buggy getopt implementation noted by TBP in http://lists.warhead.org.uk/pipermail/boxbackup/2007-July/003614.html (refs #3)
comment:456 Changed 5 years ago by chris
(In [1722]) Make char signed to fix getopt usage on ARM and PowerPC, thanks to TBP and Reinhard Tartler (refs #3, see http://lists.warhead.org.uk/pipermail/boxbackup/2007-July/003614.html)
comment:457 Changed 5 years ago by chris
comment:458 Changed 5 years ago by chris
comment:459 Changed 5 years ago by chris
comment:460 Changed 5 years ago by chris
comment:461 Changed 5 years ago by chris
comment:462 Changed 5 years ago by chris
comment:463 Changed 5 years ago by chris
comment:464 Changed 5 years ago by chris
comment:465 Changed 5 years ago by chris
comment:466 Changed 5 years ago by chris
comment:467 Changed 5 years ago by chris
comment:468 Changed 5 years ago by chris
comment:469 Changed 5 years ago by chris
comment:470 Changed 5 years ago by chris
comment:471 Changed 5 years ago by chris
(In [1745]) Add more debugging checks and messages for location setup error reported by Pete Jalajas ( http://lists.warhead.org.uk/pipermail/boxbackup/2007-July/003668.html) (refs #3, merges [1728])
