Just curious, but is the bold effect intentional in the "No Encoding Relative" scenario?
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Feb 16 2018
Feb 14 2018
Feb 13 2018
After changes T13073, I am no longer able to reproduce this. That task has made some improvements and may have fixed whatever happened here.
Feb 11 2018
It isn't currently retroactive: the fix is in transition logic and the transition just didn't trigger before.
Is this retroactive to builds in this half state prior to this commit and
deploy?
Feb 10 2018
Feb 8 2018
D19032 now renders D123 in text contexts (plaintext email) as D123 <https://dev.tyrellcorp.com/D123> instead of https://dev.tyrellcorp.com/D123.
D19030 marks this as fixed: it removes this documentation.
Feb 7 2018
I've been running into the same issue for a while now. Using the Default Policy set to Subscribers for Files works well when adding files to Phriction pages and Maniphest tickets. However, when adding binary files as part of a Diff the creator of that Diff needs to change each files permissions by hand before a reviewer can download the Diff. Moreover, this needs to be repeated for every new version of that Diff.
Feb 4 2018
Feb 2 2018
We have also found legitimate users who have valid email addresses (Irish users) that are not accepted.
For those visiting from the future via search, I have decided to publish an unofficial bug patch in a github repo, as it breaks once in awhile due to upstream changes.
Thanks @mcorteel, I'll take a look.
Feb 1 2018
This report doesn't include working reproduction instructions so we can't move forward.
@cmmata here is my diff. It can probably be improved, but it works for me:
1 | diff --git a/src/unit/engine/PhpunitTestEngine.php b/src/unit/engine/PhpunitTestEngine.php |
---|---|
2 | index 8206b787..ef01fda4 100644 |
3 | --- a/src/unit/engine/PhpunitTestEngine.php |
4 | +++ b/src/unit/engine/PhpunitTestEngine.php |
5 | @@ -52,7 +52,7 @@ final class PhpunitTestEngine extends ArcanistUnitTestEngine { |
6 | if (!Filesystem::pathExists($test_path)) { |
7 | continue; |
8 | } |
9 | - $json_tmp = new TempFile(); |
10 | + $xml_tmp = new TempFile(); |
11 | $clover_tmp = null; |
12 | $clover = null; |
13 | if ($this->getEnableCoverage() !== false) { |
14 | @@ -64,10 +64,10 @@ final class PhpunitTestEngine extends ArcanistUnitTestEngine { |
15 | |
16 | $stderr = '-d display_errors=stderr'; |
17 | |
18 | - $futures[$test_path] = new ExecFuture('%C %C %C --log-json %s %C %s', |
19 | - $this->phpunitBinary, $config, $stderr, $json_tmp, $clover, $test_path); |
20 | + $futures[$test_path] = new ExecFuture('%C %C %C --log-junit %s %C %s', |
21 | + $this->phpunitBinary, $config, $stderr, $xml_tmp, $clover, $test_path); |
22 | $tmpfiles[$test_path] = array( |
23 | - 'json' => $json_tmp, |
24 | + 'xml' => $xml_tmp, |
25 | 'clover' => $clover_tmp, |
26 | ); |
27 | } |
28 | @@ -81,7 +81,7 @@ final class PhpunitTestEngine extends ArcanistUnitTestEngine { |
29 | |
30 | $results[] = $this->parseTestResults( |
31 | $test, |
32 | - $tmpfiles[$test]['json'], |
33 | + $tmpfiles[$test]['xml'], |
34 | $tmpfiles[$test]['clover'], |
35 | $stderr); |
36 | } |
37 | @@ -90,17 +90,17 @@ final class PhpunitTestEngine extends ArcanistUnitTestEngine { |
38 | } |
39 | |
40 | /** |
41 | - * Parse test results from phpunit json report. |
42 | + * Parse test results from phpunit XML report. |
43 | * |
44 | * @param string $path Path to test |
45 | - * @param string $json_tmp Path to phpunit json report |
46 | + * @param string $xml_tmp Path to phpunit XML report |
47 | * @param string $clover_tmp Path to phpunit clover report |
48 | * @param string $stderr Data written to stderr |
49 | * |
50 | * @return array |
51 | */ |
52 | - private function parseTestResults($path, $json_tmp, $clover_tmp, $stderr) { |
53 | - $test_results = Filesystem::readFile($json_tmp); |
54 | + private function parseTestResults($path, $xml_tmp, $clover_tmp, $stderr) { |
55 | + $test_results = Filesystem::readFile($xml_tmp); |
56 | return id(new ArcanistPhpunitTestResultParser()) |
57 | ->setEnableCoverage($this->getEnableCoverage()) |
58 | ->setProjectRoot($this->projectRoot) |
59 | diff --git a/src/unit/parser/ArcanistPhpunitTestResultParser.php b/src/unit/parser/ArcanistPhpunitTestResultParser.php |
60 | index 5ccff970..3d7fcd77 100644 |
61 | --- a/src/unit/parser/ArcanistPhpunitTestResultParser.php |
62 | +++ b/src/unit/parser/ArcanistPhpunitTestResultParser.php |
63 | @@ -9,10 +9,10 @@ |
64 | final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser { |
65 | |
66 | /** |
67 | - * Parse test results from phpunit json report |
68 | + * Parse test results from phpunit XML report |
69 | * |
70 | * @param string $path Path to test |
71 | - * @param string $test_results String containing phpunit json report |
72 | + * @param string $test_results String containing phpunit XML report |
73 | * |
74 | * @return array |
75 | */ |
76 | @@ -25,7 +25,7 @@ final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser { |
77 | return array($result); |
78 | } |
79 | |
80 | - $report = $this->getJsonReport($test_results); |
81 | + $report = simplexml_load_string($test_results); |
82 | |
83 | // coverage is for all testcases in the executed $path |
84 | $coverage = array(); |
85 | @@ -36,56 +36,36 @@ final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser { |
86 | $last_test_finished = true; |
87 | |
88 | $results = array(); |
89 | - foreach ($report as $event) { |
90 | - switch (idx($event, 'event')) { |
91 | - case 'test': |
92 | - break; |
93 | - case 'testStart': |
94 | - $last_test_finished = false; |
95 | - // fall through |
96 | - default: |
97 | - continue 2; // switch + loop |
98 | - } |
99 | - |
100 | + foreach ($report->testsuite as $test_suite) { |
101 | $status = ArcanistUnitTestResult::RESULT_PASS; |
102 | $user_data = ''; |
103 | |
104 | - if ('fail' == idx($event, 'status')) { |
105 | + if ((int)$test_suite['failures'] > 0) { |
106 | $status = ArcanistUnitTestResult::RESULT_FAIL; |
107 | - $user_data .= idx($event, 'message')."\n"; |
108 | - foreach (idx($event, 'trace') as $trace) { |
109 | - $user_data .= sprintf( |
110 | - "\n%s:%s", |
111 | - idx($trace, 'file'), |
112 | - idx($trace, 'line')); |
113 | + foreach ($test_suite->testcase as $test_case) { |
114 | + foreach ($test_case->failure as $failure) { |
115 | + $user_data .= sprintf( |
116 | + "\n%s", |
117 | + (string)$failure); |
118 | + } |
119 | } |
120 | - } else if ('error' == idx($event, 'status')) { |
121 | - if (strpos(idx($event, 'message'), 'Skipped Test') !== false) { |
122 | - $status = ArcanistUnitTestResult::RESULT_SKIP; |
123 | - $user_data .= idx($event, 'message'); |
124 | - } else if (strpos( |
125 | - idx($event, 'message'), |
126 | - 'Incomplete Test') !== false) { |
127 | - $status = ArcanistUnitTestResult::RESULT_SKIP; |
128 | - $user_data .= idx($event, 'message'); |
129 | - } else { |
130 | - $status = ArcanistUnitTestResult::RESULT_BROKEN; |
131 | - $user_data .= idx($event, 'message'); |
132 | - foreach (idx($event, 'trace') as $trace) { |
133 | - $user_data .= sprintf( |
134 | - "\n%s:%s", |
135 | - idx($trace, 'file'), |
136 | - idx($trace, 'line')); |
137 | + } else if ($test_suite['errors'] > 0) { |
138 | + $status = ArcanistUnitTestResult::RESULT_BROKEN; |
139 | + foreach ($test_suite->testcase as $test_case) { |
140 | + foreach ($test_case->error as $error) { |
141 | + $user_data .= sprintf( |
142 | + "\n%s", |
143 | + (string)$error); |
144 | } |
145 | } |
146 | } |
147 | |
148 | - $name = preg_replace('/ \(.*\)/s', '', idx($event, 'test')); |
149 | + $name = preg_replace('/ \(.*\)/s', '', $test_suite['name']); |
150 | |
151 | $result = new ArcanistUnitTestResult(); |
152 | $result->setName($name); |
153 | $result->setResult($status); |
154 | - $result->setDuration(idx($event, 'time')); |
155 | + $result->setDuration((float)$test_suite['time']); |
156 | $result->setCoverage($coverage); |
157 | $result->setUserData($user_data); |
158 | |
159 | @@ -95,7 +75,7 @@ final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser { |
160 | |
161 | if (!$last_test_finished) { |
162 | $results[] = id(new ArcanistUnitTestResult()) |
163 | - ->setName(idx($event, 'test')) // use last event |
164 | + ->setName($test_suite['name']) // use last event |
165 | ->setUserData($this->stderr) |
166 | ->setResult(ArcanistUnitTestResult::RESULT_BROKEN); |
167 | } |
168 | @@ -161,28 +141,4 @@ final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser { |
169 | return $reports; |
170 | } |
171 | |
172 | - /** |
173 | - * We need this non-sense to make json generated by phpunit |
174 | - * valid. |
175 | - * |
176 | - * @param string $json String containing JSON report |
177 | - * @return array JSON decoded array |
178 | - */ |
179 | - private function getJsonReport($json) { |
180 | - |
181 | - if (empty($json)) { |
182 | - throw new Exception( |
183 | - pht( |
184 | - 'JSON report file is empty, it probably means that phpunit '. |
185 | - 'failed to run tests. Try running %s with %s option and then run '. |
186 | - 'generated phpunit command yourself, you might get the answer.', |
187 | - 'arc unit', |
188 | - '--trace')); |
189 | - } |
190 | - |
191 | - $json = preg_replace('/}{\s*"/', '},{"', $json); |
192 | - $json = '['.$json.']'; |
193 | - return phutil_json_decode($json); |
194 | - } |
195 | - |
196 | } |
@mcorteel I have the same problem, arc unit only works with phpunit 5.7. If I use 6.5, it fails. Do you have that patch anywhere with public access so we can use it while it's not published?
Jan 27 2018
Jan 26 2018
This is quite old and I have no idea how to reproduce it and thus no idea how to fix it. Locally, I tried a few things and wasn't able to identify a case where the Herald field value differed from my actual project list.
Jan 24 2018
Jan 21 2018
From https://bugzilla.mindrot.org/show_bug.cgi?id=2496, this is apparently fixed in the OpenSSH upstream (https://github.com/openssh/openssh-portable/commit/ddd3d34e5c7979ca6f4a3a98a7d219a4ed3d98c2). Since this is a bug in OpenSSH, an upstream fix is available, and the impact is fairly narrow, I don't plan to work around it in Phabricator.
Jan 19 2018
I've marked D18867 as fixing this. It isn't a perfect fix, but it's closer to the realm of reasonable (you have a sensible amount of area to work with and a readable font):
Jan 5 2018
Jan 4 2018
Actually, this is less crazy than I thought.
This appears to date back to the introduction of the feature in D5738, where I suggested we use ancestors() without a legitimate reason (or maybe very old Mercurial had weird behavior).
Dec 26 2017
Dec 22 2017
Dec 13 2017
Dec 12 2017
Dec 9 2017
Support for Ubuntu 15.10 ended on 2016-07-28.
Did this problem also happen with any later, still supported Ubuntu version (like 16.04) or can this task be closed as obsolete?
Nov 30 2017
This should be fixed by changes in T13024.
This should be fixed by changes in T13024.
Nov 29 2017
In PHI231, a more experienced user went through this workflow:
Nov 28 2017
@epriestley what do you think of creating another column in the calendar_eventinvitee table, something like a bool futureStatus so that when we get a list of invitees back, we can check for that flag. I think this would mean a lot of date comparisons (seems inefficient), and I'm not quite sure when to populate event stubs. For example, if the futureStatus flag is set to true for instance 10, and there are stubs for instances 15 and 20, when would 15 and 20 get converted to have the updated status?
Nov 23 2017
In T12098#233396, @sshannin wrote:
Obviously not a particularly important issue, but this now will populate a link in the favorites menu which leads to an exception:
Nov 21 2017
Hi Epriestley,
@epriestley I tried submitting a patch, but I get a Permission denied (publickey) which results in Unable to push changes to the staging area..
I added my public key and created a config rule to use it for requests to secure.phabricator.com, I'm not sure what else to do.
So, to recap:
- PhpunitTestEngine::run must be updated to use --log-junit which will output XML instead of JSON
- ArcanistPhpunitTestResultParser::parseTestResults must be updated to parse this XML file.
This seems simple enough, I will try to make it work.
Nov 1 2017
Pretty sure T7704 is the same as this.
Oct 31 2017
Ah, thanks. I think your guess is right. I'll make a note in T2543, should be a one-line fix I think.
From https://discourse.phabricator-community.org/t/644 - it appears that HM now triggers a build on revisions when they are closed via landing, which fails because the build expects a Staging ref. I don't have the setup to test any of it, but the latest revision landed here doesn't show the behavior, so either f7f3dd5b2084 hasn't rolled in here yet, or that user is doing something funny.
Oct 27 2017
Oct 24 2017
Oct 16 2017
I'm getting the same #1048: Column 'filename' cannot be null running just regular "arc diff". It used to work and then at some point after updates started failing.
Oct 7 2017
We should probably update the documentation to recommend --output and --compress, since the error behavior (e.g., in the event of a full disk) is better.
Thanks for the fix on that. I have my nightly backups running again, however I had to switch from
./bin/storage dump | gzip > file.sql.gz
to
phab/bin/storage dump --output file.sql.gz --compress
Thanks for the quick response. I'll try the workaround in the morning.
Oct 5 2017
On the bin/files download side of things, we currently buffer the whole file into a string and then hit this:
For consistency, I gave the content Cloudfront distribution a 60-second timeout as well.
Pulling stuff from admin.phacility.com via Cloudfront, I get this instead:
In the log above, this download should have worked:
i encountered same problem , but it happened on libphutil/src/xsprintf/xsprintf.php. I resolved this problem by setting max_nesting_level on php xdebug .
Oct 2 2017
Sorry to leave this hanging, but the issue was with our server configuration. We did not have the correct sudo rights confgured