Page MenuHomePhabricator

All files uploaded via `arc diff` empty (Windows)
Closed, InvalidPublic

Description

We're using the latest versions of Arcanist and Phabricator (as of 7am PST, 18 April 2015). One of my employees (and one of the few using Windows 8) tried twice to create a differential via arc diff. The differential was created successfully, with all of the files and folders, but the files themselves were confirmed blank. (They both showed up as blank on the Diff, and were blank when downlaoded via arc patch.)

She has previously been able to successfully arc diff on the same system, though she hasn't done one in a few weeks, so I don't know exactly when in the Phabricator updates this broke.

The Linux version of Arcanist is working perfectly. I was able to upload her files to the diff for her from my end (Ubuntu 14.10).

Event Timeline

CodeMouse92 raised the priority of this task from to Needs Triage.
CodeMouse92 updated the task description. (Show Details)
CodeMouse92 added a project: Arcanist.
CodeMouse92 added a project: Differential.
CodeMouse92 updated the task description. (Show Details)
CodeMouse92 added a subscriber: CodeMouse92.

Can you run --trace with it?

I'll ask my employee to do that on a test commit, and I'll let you know.

I'd also make sure their local arcanist is up to date with arc upgrade

Yes, I had her run arc upgrade before her second attempt.

Here is the requested output. I put <SERVER> in place of the actual domain name.

1C:\Users\Stacy\repos\lightrift>svn add . --force
2A trunk\HelloWorld
3A trunk\HelloWorld\HelloWorld.cbp
4A trunk\HelloWorld\main.cpp
5A trunk\HelloWorld\HelloWorld.layout
6A trunk\HelloWorld\bin
7A trunk\HelloWorld\bin\Debug
8A (bin) trunk\HelloWorld\bin\Debug\HelloWorld.exe
9A trunk\HelloWorld\obj
10A trunk\HelloWorld\obj\Debug
11
12C:\Users\Stacy\repos\lightrift>arc diff --trace
13libphutil loaded from 'C:\arcanist\libphutil\src'.
14arcanist loaded from 'C:\arcanist\arcanist\src'.
15Config: Reading user configuration file "C:\Users\Stacy\AppData\Roaming/.arcrc".
16..
17Config: Did not find system configuration at "C:\ProgramData\Phabricator/Arcanis
18t/config".
19Working Copy: Reading .arcconfig from "C:\Users\Stacy\repos\lightrift/.arcconfig
20".
21Working Copy: Path "C:\Users\Stacy\repos\lightrift" is part of `svn` working cop
22y "C:\Users\Stacy\repos\lightrift".
23Working Copy: Project root is at "C:\Users\Stacy\repos\lightrift".
24Config: Did not find local configuration at "C:\Users\Stacy\repos\lightrift\.svn
25\arc/config".
26Loading phutil library from 'C:\Users\Stacy\repos\lightrift\.arclibs\cppcheck'..
27.
28>>> [0] <conduit> user.whoami() <bytes = 117>
29>>> [1] <http> https://<SERVER>/api/user.whoami
30<<< [1] <http> 1,104,249 us
31<<< [0] <conduit> 1,129,904 us
32>>> [2] <exec> $ svn --xml status
33<<< [2] <exec> 206,446 us
34>>> [3] <event> diff.didCollectChanges <listeners = 0>
35<<< [3] <event> 343 us
36>>> [4] <conduit> differential.query() <bytes = 262>
37>>> [5] <http> https://<SERVER>/api/differential.query
38<<< [5] <http> 223,297 us
39<<< [4] <conduit> 224,385 us
40You have a saved revision message in '.svn\arc\create-message'.
41Message begins:
42
43 Hello World
44
45You can use this message, or discard it.
46
47 Do you want to use this message? [Y/n] Y
48
49>>> [6] <event> diff.willBuildMessage <listeners = 0>
50<<< [6] <event> 220 us
51>>> [7] <exec> $ "C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -no
52session "C:\Users\Stacy\AppData\Local\Temp\edit.jph7oe8ipy8ksos4\new-commit"
53<<< [7] <exec> 15,767,108 us
54>>> [8] <conduit> differential.parsecommitmessage() <bytes = 297>
55>>> [9] <http> https://<SERVER>/api/differential.parsecommitmessa
56ge
57<<< [9] <http> 571,499 us
58<<< [8] <conduit> 572,412 us
59
60
61 You have not specified any reviewers. Continue anyway? [y/N] y
62
63>>> [10] <event> diff.didBuildMessage <listeners = 0>
64<<< [10] <event> 241 us
65Linting...
66>>> [11] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/Hell
67oWorld.cbp"@
68<<< [11] <exec> 204,560 us
69>>> [12] <exec> $ svn diff --depth empty "trunk/HelloWorld/HelloWorld.cbp"
70<<< [12] <exec> 503,610 us
71>>> [13] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/Hell
72oWorld.layout"@
73<<< [13] <exec> 303,538 us
74>>> [14] <exec> $ svn diff --depth empty "trunk/HelloWorld/HelloWorld.layout"
75<<< [14] <exec> 510,848 us
76>>> [15] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/bin/
77Debug/HelloWorld.exe"@
78<<< [15] <exec> 312,203 us
79>>> [16] <exec> $ svn diff --depth empty "trunk/HelloWorld/bin/Debug/HelloWorld.
80exe"
81<<< [16] <exec> 103,620 us
82>>> [17] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
83<<< [17] <exec> 303,319 us
84>>> [18] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/main
85.cpp"@
86<<< [18] <exec> 309,051 us
87>>> [19] <exec> $ svn diff --depth empty "trunk/HelloWorld/main.cpp"
88<<< [19] <exec> 303,189 us
89Examining paths for linter 'cpp'.
90Examining path 'trunk/HelloWorld'...
91 Testing "include" rules.
92 Path does not match include rule: (\.cpp$)
93 Path does not match any include rules, discarding.
94Examining path 'trunk/HelloWorld/HelloWorld.cbp'...
95 Testing "include" rules.
96 Path does not match include rule: (\.cpp$)
97 Path does not match any include rules, discarding.
98Examining path 'trunk/HelloWorld/HelloWorld.layout'...
99 Testing "include" rules.
100 Path does not match include rule: (\.cpp$)
101 Path does not match any include rules, discarding.
102Examining path 'trunk/HelloWorld/bin'...
103 Testing "include" rules.
104 Path does not match include rule: (\.cpp$)
105 Path does not match any include rules, discarding.
106Examining path 'trunk/HelloWorld/bin/Debug'...
107 Testing "include" rules.
108 Path does not match include rule: (\.cpp$)
109 Path does not match any include rules, discarding.
110Examining path 'trunk/HelloWorld/bin/Debug/HelloWorld.exe'...
111 Testing "include" rules.
112 Path does not match include rule: (\.cpp$)
113 Path does not match any include rules, discarding.
114Examining path 'trunk/HelloWorld/main.cpp'...
115 Testing "include" rules.
116 Path matches include rule: (\.cpp$).
117 Path matches.
118Examining path 'trunk/HelloWorld/obj'...
119 Testing "include" rules.
120 Path does not match include rule: (\.cpp$)
121 Path does not match any include rules, discarding.
122Examining path 'trunk/HelloWorld/obj/Debug'...
123 Testing "include" rules.
124 Path does not match include rule: (\.cpp$)
125 Path does not match any include rules, discarding.
126Found 1 matching paths for linter 'cpp'.
127Examining paths for linter 'h'.
128Examining path 'trunk/HelloWorld'...
129 Testing "include" rules.
130 Path does not match include rule: (\.h$)
131 Path does not match any include rules, discarding.
132Examining path 'trunk/HelloWorld/HelloWorld.cbp'...
133 Testing "include" rules.
134 Path does not match include rule: (\.h$)
135 Path does not match any include rules, discarding.
136Examining path 'trunk/HelloWorld/HelloWorld.layout'...
137 Testing "include" rules.
138 Path does not match include rule: (\.h$)
139 Path does not match any include rules, discarding.
140Examining path 'trunk/HelloWorld/bin'...
141 Testing "include" rules.
142 Path does not match include rule: (\.h$)
143 Path does not match any include rules, discarding.
144Examining path 'trunk/HelloWorld/bin/Debug'...
145 Testing "include" rules.
146 Path does not match include rule: (\.h$)
147 Path does not match any include rules, discarding.
148Examining path 'trunk/HelloWorld/bin/Debug/HelloWorld.exe'...
149 Testing "include" rules.
150 Path does not match include rule: (\.h$)
151 Path does not match any include rules, discarding.
152Examining path 'trunk/HelloWorld/main.cpp'...
153 Testing "include" rules.
154 Path does not match include rule: (\.h$)
155 Path does not match any include rules, discarding.
156Examining path 'trunk/HelloWorld/obj'...
157 Testing "include" rules.
158 Path does not match include rule: (\.h$)
159 Path does not match any include rules, discarding.
160Examining path 'trunk/HelloWorld/obj/Debug'...
161 Testing "include" rules.
162 Path does not match include rule: (\.h$)
163 Path does not match any include rules, discarding.
164Found 0 matching paths for linter 'h'.
165>>> [20] <exec> $ where "cppcheck"
166<<< [20] <exec> 610,350 us
167>>> [21] <exec> $ "cppcheck" --version
168<<< [21] <exec> 604,846 us
169>>> [22] <lint> ArcanistCppcheckLinter <paths = 1>
170>>> [23] <exec> $ where "cppcheck"
171<<< [23] <exec> 107,282 us
172>>> [24] <exec> $ "cppcheck" "--quiet" "--inline-suppr" "--xml" "--xml-version=2
173" "-j2" "--enable=performance,style,portability,information" "C:\Users\Stacy\rep
174os\lightrift\trunk\HelloWorld\main.cpp"
175<<< [22] <lint> 112,158 us
176>>> [25] <lint> ArcanistCppcheckLinter
177<<< [24] <exec> 102,921 us
178<<< [25] <lint> 100,077 us
179 LINT OKAY No lint problems.
180Running unit tests...
181No unit test engine is configured for this project.
182>>> [26] <exec> $ svn diff --depth empty "trunk/HelloWorld"
183>>> [27] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld"@
184>>> [28] <exec> $ svn diff --depth empty "trunk/HelloWorld/HelloWorld.cbp"
185>>> [29] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/Hell
186oWorld.cbp"@
187>>> [30] <exec> $ svn diff --depth empty "trunk/HelloWorld/HelloWorld.layout"
188>>> [31] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/Hell
189oWorld.layout"@
190>>> [32] <exec> $ svn diff --depth empty "trunk/HelloWorld/bin"
191>>> [33] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/bin"
192@
193<<< [27] <exec> 429,298 us
194<<< [28] <exec> 426,560 us
195<<< [29] <exec> 423,417 us
196<<< [30] <exec> 418,992 us
197<<< [31] <exec> 414,524 us
198<<< [32] <exec> 410,749 us
199<<< [33] <exec> 406,256 us
200>>> [34] <exec> $ svn diff --depth empty "trunk/HelloWorld/bin/Debug"
201<<< [26] <exec> 437,366 us
202>>> [35] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/bin/
203Debug"@
204<<< [34] <exec> 106,765 us
205>>> [36] <exec> $ svn diff --depth empty "trunk/HelloWorld/bin/Debug/HelloWorld.
206exe"
207<<< [35] <exec> 306,516 us
208>>> [37] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/bin/
209Debug/HelloWorld.exe"@
210<<< [36] <exec> 106,243 us
211>>> [38] <exec> $ svn diff --depth empty "trunk/HelloWorld/main.cpp"
212<<< [37] <exec> 306,421 us
213>>> [39] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/main
214.cpp"@
215<<< [38] <exec> 306,507 us
216>>> [40] <exec> $ svn diff --depth empty "trunk/HelloWorld/obj"
217<<< [39] <exec> 107,275 us
218>>> [41] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/obj"
219@
220<<< [40] <exec> 107,222 us
221>>> [42] <exec> $ svn diff --depth empty "trunk/HelloWorld/obj/Debug"
222<<< [41] <exec> 111,049 us
223>>> [43] <exec> $ svn info "C:\Users\Stacy\repos\lightrift\trunk/HelloWorld/obj/
224Debug"@
225<<< [42] <exec> 211,496 us
226<<< [43] <exec> 103,158 us
227>>> [44] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
228<<< [44] <exec> 103,130 us
229>>> [45] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
230<<< [45] <exec> 103,285 us
231>>> [46] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
232<<< [46] <exec> 103,142 us
233>>> [47] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
234<<< [47] <exec> 103,460 us
235>>> [48] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
236<<< [48] <exec> 102,847 us
237>>> [49] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
238<<< [49] <exec> 103,041 us
239>>> [50] <exec> $ svn cat "trunk/HelloWorld/bin/Debug/HelloWorld.exe"@
240<<< [50] <exec> 103,076 us
241>>> [51] <exec> $ file --brief --mime "C:\Users\Stacy\AppData\Local\Temp\9ajkg4b
242zz7cwgcgc\591536B.tmp"
243<<< [51] <exec> 103,552 us
244Uploading 1 files...
245>>> [52] <conduit> file.uploadhash() <bytes = 215>
246>>> [53] <http> https://<SERVER>/api/file.uploadhash
247<<< [53] <http> 534,721 us
248<<< [52] <conduit> 535,198 us
249>>> [54] <conduit> file.upload() <bytes = 1466066>
250>>> [55] <http> https://<SERVER>/api/file.upload
251<<< [55] <http> 14,561,522 us
252<<< [54] <conduit> 14,562,116 us
253Uploaded 'HelloWorld.exe' (new).
254Upload complete.
255>>> [56] <exec> $ svn info .
256<<< [56] <exec> 203,321 us
257>>> [57] <conduit> repository.query() <bytes = 152>
258>>> [58] <http> https://<SERVER>/api/repository.query
259<<< [58] <http> 194,796 us
260<<< [57] <conduit> 195,111 us
261>>> [59] <conduit> differential.creatediff() <bytes = 4270>
262>>> [60] <http> https://<SERVER>/api/differential.creatediff
263<<< [60] <http> 711,668 us
264<<< [59] <conduit> 712,018 us
265>>> [61] <event> diff.wasCreated <listeners = 0>
266<<< [61] <event> 214 us
267>>> [62] <event> revision.willCreateRevision <listeners = 0>
268<<< [62] <event> 178 us
269>>> [63] <conduit> differential.createrevision() <bytes = 333>
270>>> [64] <http> https://<SERVER>/api/differential.createrevision
271<<< [64] <http> 1,942,376 us
272<<< [63] <conduit> 1,943,202 us
273>>> [65] <conduit> differential.getcommitmessage() <bytes = 142>
274>>> [66] <http> https://<SERVER>/api/differential.getcommitmessag
275e
276<<< [66] <http> 579,953 us
277<<< [65] <conduit> 581,158 us
278Created a new Differential revision:
279 Revision URI: https://<SERVER>/D47
280
281Included changes:
282 A (dir) trunk/HelloWorld
283 A trunk/HelloWorld/HelloWorld.cbp
284 A trunk/HelloWorld/HelloWorld.layout
285 A (bin) trunk/HelloWorld/bin/Debug/HelloWorld.exe
286 A trunk/HelloWorld/main.cpp
287 A (dir) trunk/HelloWorld/bin
288 A (dir) trunk/HelloWorld/bin/Debug
289 A (dir) trunk/HelloWorld/obj
290 A (dir) trunk/HelloWorld/obj/Debug
291
292C:\Users\Stacy\repos\lightrift>

Is it just a specific diff or all diffs from Windows?

Also, I don't personally know Windows well, but what shell are they using? I don't know if that's important here.

Default shell (cmd), though that shouldn't really make a difference, you're right.

The arc diff --trace output comes from a new diff to a different repository, with different files. Both diffs (the test one, and the one in which we first encountered this bug) had the same problem, but as I fixed the first myself (I'm on Linux), I didn't want her to accidentally overwrite the code I pushed up for her in the prior diff, so I had her make this new one in an otherwise empty repository.

We also have rSVNTEST on this instance if you want to rule out your local server.

I appreciate that, but I know it isn't the server that is the problem, as the problem is isolated to Windows, and all the staff using Linux is sending diffs to the repositories without a problem. (It also worked in the past from Windows, and the only server changes have been Phabricator's updates.)

It was a case of operator error in this situation in following workaround T2465: Context not available for revisions created on Windows by @raman.rathod. (The path has to be in double-quotes, and spaces were omitted in "Program Files (x86). Simple case of everybody knows, so nobody knows.

CodeMouse92 claimed this task.