Guo Xiang Tan
793ccd144e
Fix broken JS tests.
2017-09-26 16:15:25 +08:00
Guo Xiang Tan
c25730935e
FIX: Do not include non-human users on suspected users list.
...
https://meta.discourse.org/t/discobot-is-a-suspect-user/70558
2017-09-26 15:04:08 +08:00
Guo Xiang Tan
6f5051861c
Remove unused option.
2017-09-26 14:47:38 +08:00
Guo Xiang Tan
5d37f8673b
PERF: Only send down suggested payload when loading last chunk.
2017-09-26 14:42:27 +08:00
Guo Xiang Tan
c06b782cab
PERF: Reduce number of topics to filter while querying for unread.
2017-09-26 12:36:52 +08:00
Guo Xiang Tan
b8d9a6f747
Fix randomly failing spec.
2017-09-25 20:50:03 +08:00
Guo Xiang Tan
d442da9fdd
SECURITY: Update Nokogiri.
2017-09-25 20:06:58 +08:00
Guo Xiang Tan
4e5e7dc736
FIX: Fix ActiveRecord API that was removed in Rails 5.1.
2017-09-25 16:16:37 +08:00
Guo Xiang Tan
88555f32cf
Improve specs.
2017-09-25 13:49:00 +08:00
Guo Xiang Tan
9540b952fd
Fix broken condition in PostgresqlFallbackAdapter.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
e542884b00
FIX: Incorrect notification state being published.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
23b787e0a6
Require dependency otherwise it causes Sidekiq to lock up in development.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
5be5def217
PERF: Bypass AR and just use raw SQL.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
475e86d59e
WORKAROUND: Can't reinsert a deleted middleware.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
3840c50083
Fix logster not ignoring CSRF warnings.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
77d4c4d8dc
Fix all the errors to get our tests green on Rails 5.1.
2017-09-25 13:48:58 +08:00
Guo Xiang Tan
898ee93547
Upgrade to Rails 5.
2017-09-25 10:01:22 +08:00
Guo Xiang Tan
d58de2b484
Install Ruby-Prof.
2017-09-25 10:01:22 +08:00
Guo Xiang Tan
bfda6884b1
Fix randomly failing spec.
2017-09-20 13:30:15 +08:00
Guo Xiang Tan
1a9762a9c0
Fixed private group messages being exposed in suggested topics.
...
Revert "Revert "PERF: Avoid unnecessary expensive joins if possible.""
This reverts commit d9714c21c8 .
2017-09-15 23:40:53 +08:00
Guo Xiang Tan
d9714c21c8
Revert "PERF: Avoid unnecessary expensive joins if possible."
...
This reverts commit f3fadf41b7 .
* This ended up exposing group pms to users that are not part
of a group.
2017-09-15 22:22:07 +08:00
Guo Xiang Tan
de46d59a94
Remove comment that is no longer relevant.
2017-09-14 19:57:50 +08:00
Guo Xiang Tan
195982fd41
PERF: Remove N+1 query when generating posters summary.
2017-09-14 12:07:35 +08:00
Guo Xiang Tan
f3fadf41b7
PERF: Avoid unnecessary expensive joins if possible.
...
```
EXPLAIN ANALYZE SELECT "topics".* FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (
topics.id IN (
SELECT topic_id
FROM topic_allowed_groups tg
JOIN group_users gu ON gu.user_id = 13455 AND gu.group_id =
tg.group_id
WHERE gu.group_id IN (47)
)
)
AND (
topics.id IN (
SELECT ta.topic_id
FROM topic_allowed_users ta
WHERE ta.user_id IN (32852,-10)
)
OR
topics.id IN (
SELECT tg.topic_id
FROM topic_allowed_groups tg
WHERE tg.group_id IN (-10)
)
)
AND (topics.id NOT IN (69933,69995,69988,69984,69968,69973,69971,69952))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 3;
```
Planning time: 1.277 ms
Execution time: 71.577 ms
```
EXPLAIN ANALYZE SELECT "topics".* FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
LEFT JOIN (
SELECT * FROM topic_allowed_groups _tg
LEFT JOIN group_users gu
ON gu.user_id = 13455
AND gu.group_id = _tg.group_id
AND gu.group_id IN (47)
) tg ON topics.id = tg.topic_id
LEFT JOIN topic_allowed_users ta2 ON topics.id = ta2.topic_id AND
ta2.user_id IN (32852)
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (tg.topic_id IS NOT NULL)
AND (ta2.topic_id IS NOT NULL)
AND (topics.id NOT IN (69933,69995,69988,69984,69968,69973,69971,69952))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 3;
```
Planning time: 1.191 ms
Execution time: 0.129 ms
2017-09-14 11:18:58 +08:00
Guo Xiang Tan
28148197d6
PERF: Avoid NOT IN (<subquery>> which can get really slow.
...
```
EXPLAIN ANALYZE SELECT "topics".*
FROM "topics" LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND
tu.user_id = 13455
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (
topics.id IN (
SELECT topic_id
FROM topic_allowed_users
WHERE user_id = 13455
)
)
AND (
topics.id IN (
SELECT ta.topic_id
FROM topic_allowed_users ta
WHERE ta.user_id IN (2,1995,8307,17621,22980,-10)
)
OR
topics.id IN (
SELECT tg.topic_id
FROM topic_allowed_groups tg
WHERE tg.group_id IN (-10)
)
)
AND (topics.id NOT IN (68559,60069,42145))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at
DESC LIMIT 5;
```
Planning time: 1.196 ms
Execution time: 21.176 ms
```
EXPLAIN ANALYZE SELECT "topics".*
FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
LEFT JOIN topic_allowed_users ta ON topics.id = ta.topic_id AND
ta.user_id = 13455
LEFT JOIN topic_allowed_users ta2 ON topics.id = ta2.topic_id AND
ta2.user_id IN (2,1995,8307,17621,22980,-10)
LEFT JOIN topic_allowed_groups tg ON topics.id = tg.topic_id AND
tg.group_id IN (-10)
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (ta.topic_id IS NOT NULL)
AND (ta2.topic_id IS NOT NULL OR tg.topic_id IS NOT NULL)
AND (topics.id NOT IN (68559,60069,42145))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 5;
```
Planning time: 1.792 ms
Execution time: 2.546 ms
2017-09-13 22:28:33 +08:00
Guo Xiang Tan
4c1fa759e5
FIX: Add missing option to apache bench.
2017-09-13 16:12:38 +08:00
Guo Xiang Tan
26c6447161
Fix bugs in profiling scripts leading to incorrect results.
2017-09-13 15:33:59 +08:00
Guo Xiang Tan
e70428ac8c
FIX: Don't write wget response to file.
2017-09-13 14:09:23 +08:00
Guo Xiang Tan
07bfe3d053
FIX: Use a distrbuted cache for site locale.
2017-09-12 19:36:17 +08:00
Guo Xiang Tan
51e1c0b6ce
Revert "FIX: Move check to right serializer."
...
This reverts commit 793f933b6b .
2017-09-12 18:11:08 +08:00
Guo Xiang Tan
793f933b6b
FIX: Move check to right serializer.
2017-09-12 17:52:13 +08:00
Guo Xiang Tan
d3a409456f
PERF: Bypass AR and execute SQL directly.
2017-09-12 17:52:13 +08:00
Guo Xiang Tan
b7ac33464f
Reduce number of Redis calls.
2017-09-08 20:12:53 +08:00
Guo Xiang Tan
84031c5cb9
Make eslint happy.
2017-09-08 14:08:19 +08:00
Guo Xiang Tan
2db47f98cd
Avoid allocating an extra array.
2017-09-08 14:07:24 +08:00
Guo Xiang Tan
0f2a303f00
Remove irrelevant comment.
2017-09-08 14:07:24 +08:00
Guo Xiang Tan
5d4221fbe1
PERF: Avoid calling expensive PostGuardian#can_see_post? multiple times.
...
Before
```
Your Results: (note for timings- percentile is first, duration is second
in millisecs)
---
topic_admin:
50: 19
75: 19
90: 21
99: 27
topic:
50: 56
75: 62
90: 64
99: 99
timings:
load_rails: 1262
ruby-version: 2.4.1-p111
rss_kb: 198432
pss_kb: 136612
virtual: physical
architecture: amd64
operatingsystem: Ubuntu
memorysize: 15.59 GB
kernelversion: 4.10.0
physicalprocessorcount: 1
processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
rss_kb_9877: 327892
pss_kb_9877: 263671
rss_kb_9946: 325468
pss_kb_9946: 261671
rss_kb_10153: 326456
pss_kb_10153: 262657
```
After
```
Your Results: (note for timings- percentile is first, duration is second
in millisecs)
---
topic_admin:
50: 18
75: 18
90: 20
99: 28
topic:
50: 41
75: 42
90: 46
99: 49
timings:
load_rails: 1201
ruby-version: 2.4.1-p111
rss_kb: 187936
pss_kb: 123596
virtual: physical
architecture: amd64
operatingsystem: Ubuntu
memorysize: 15.59 GB
kernelversion: 4.10.0
physicalprocessorcount: 1
processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
rss_kb_26478: 342360
pss_kb_26478: 276696
rss_kb_26547: 340368
pss_kb_26547: 275930
rss_kb_26747: 338964
pss_kb_26747: 274466
```
2017-09-08 14:07:24 +08:00
Guo Xiang Tan
58321d0783
PERF: Remove Object#present? check introduced in https://github.com/discourse/discourse/commit/e0d5d9670ab2d0fb923fef54e3bdcbbcfc524fb1 .
2017-09-07 21:36:27 +08:00
Guo Xiang Tan
a0daa7cad0
Oops fix build again.
2017-09-07 18:59:02 +08:00
Guo Xiang Tan
e0d5d9670a
Fix the build.
2017-09-07 18:41:44 +08:00
Guo Xiang Tan
3e123b1a39
PERF: Use pluck instead of enmurating through all the records.
2017-09-07 17:24:23 +08:00
Guo Xiang Tan
4d840d10db
PERF: Reduce number of Redis hits per requests.
2017-09-07 13:34:27 +08:00
Guo Xiang Tan
4142bed1af
Fix incorrect topic id in profiiing script.
2017-09-07 06:01:35 +08:00
Guo Xiang Tan
8463b676df
Revert "Activate mini-profiler when in profiling env."
...
This reverts commit d61109388c .
2017-09-06 11:26:03 +08:00
Guo Xiang Tan
d61109388c
Activate mini-profiler when in profiling env.
2017-09-06 11:19:20 +08:00
Guo Xiang Tan
935afe63f7
Fix profile db generator not seeding.
2017-09-05 11:23:03 +08:00
Guo Xiang Tan
672b7cb9a5
Require missing dependency.
2017-09-05 09:39:56 +08:00
Guo Xiang Tan
7786c6c6f2
Remove duplicated scope.
2017-09-05 09:15:06 +08:00
Guo Xiang Tan
5c1143cd55
Add missing test case for PostController#timings.
2017-09-04 16:36:02 +08:00
Guo Xiang Tan
1043a2e99f
Run specs for discourse-chat-integration as well.
2017-09-04 10:47:42 +08:00
Guo Xiang Tan
df9d662dab
FIX: Use CASCADE when dropping function.
2017-08-30 15:54:27 +08:00
Guo Xiang Tan
54ad436258
Revert "FIX: Drop function first before removing trigger."
...
This reverts commit d229969afa .
2017-08-30 15:38:09 +08:00
Guo Xiang Tan
0a53c589c4
Fix linting.
2017-08-30 15:36:45 +08:00
Guo Xiang Tan
d229969afa
FIX: Drop function first before removing trigger.
2017-08-30 15:33:25 +08:00
Guo Xiang Tan
37e5ee858f
REFACTOR: Just pass a block instead of using a lambda.
2017-08-29 08:26:48 +08:00
Guo Xiang Tan
41ca527d7a
Fix Rubocop error.
2017-08-24 15:28:18 +09:00
Guo Xiang Tan
8779490ce4
Move new controller specs to reqeusts folder.
2017-08-24 12:01:11 +09:00
Guo Xiang Tan
68b8acbcfa
Make Redis test less brittle.
2017-08-24 10:00:15 +09:00
Guo Xiang Tan
0531ef2e20
Fix calling exists? on Arrays.
2017-08-24 09:56:07 +09:00
Guo Xiang Tan
d0f5a3d7a4
Sidekiq::Testing.fake! is the default mode.
2017-08-24 09:40:19 +09:00
Guo Xiang Tan
29a9e0c4d2
Fix the build.
2017-08-22 15:52:24 +09:00
Guo Xiang Tan
bc3e43b496
FIX: Topic timers being incorrectly trashed!.
...
https://meta.discourse.org/t/temporary-timed-closure-of-topic-not-re-opening-topic/67877
2017-08-22 15:23:09 +09:00
Guo Xiang Tan
87994a86ce
FIX: Don't set topic timer for close topics when changing category.
...
https://meta.discourse.org/t/moving-a-topic-after-closure-reopens-topic/67659/4
2017-08-22 12:54:34 +09:00
Guo Xiang Tan
2d4d76472d
FIX: Broken suspect user lists.
...
https://meta.discourse.org/t/server-error-code-500/68404
2017-08-22 11:16:55 +09:00
Guo Xiang Tan
950fa9e3a8
FIX: Skip trigger match should be case insensitive.
...
https://meta.discourse.org/t/discobot-not-skipping-tutorial/68498
2017-08-22 07:45:46 +09:00
Guo Xiang Tan
0d46c7a19b
Ensure we reset state for Messagebus.track_publish.
2017-08-21 22:29:14 +09:00
Guo Xiang Tan
e8f19e004e
Use find instead.
2017-08-21 22:28:43 +09:00
Guo Xiang Tan
93fe76fc02
Make eslint happy.
2017-08-21 21:56:22 +09:00
Guo Xiang Tan
c8eba5d20c
Add two common eslint rules.
2017-08-21 21:42:31 +09:00
Guo Xiang Tan
531cbc77c6
Run lint in a parallel job on Travis.
2017-08-18 15:25:59 +09:00
Guo Xiang Tan
8e8653a300
Fix conditions.
2017-08-18 12:46:21 +09:00
Guo Xiang Tan
8ecf383c55
Extract linter in docker:test Rake task into docker:lint.
2017-08-18 12:22:01 +09:00
Guo Xiang Tan
0e656ff213
FIX: Can't reset AR schema cache due to versions table.
2017-08-17 19:27:35 +09:00
Guo Xiang Tan
2157079d09
Add Plugin API to register a category custom field.
2017-08-17 15:59:57 +09:00
Guo Xiang Tan
86adc8d717
Fix typo.
2017-08-16 13:06:47 +09:00
Guo Xiang Tan
0b2d65f77a
Include the site setting file path for which a default value is missing.
2017-08-16 11:42:08 +09:00
Guo Xiang Tan
ed851dbfff
FIX: Avoid publishing a gigantic payload.
...
* Certain sites have way too many categories.
2017-08-16 11:38:30 +09:00
Guo Xiang Tan
9f11223250
Fix select-box Qunit tests to use the proper Ember test helpers.
2017-08-16 09:35:56 +09:00
Guo Xiang Tan
793eccf6c5
FIX: Staged users were incorrectly created multiple times with same email.
2017-08-10 18:56:15 +09:00
Guo Xiang Tan
f7d3702454
FIX: Return 404 if API access is invalid.
2017-08-10 18:27:01 +09:00
Guo Xiang Tan
b84e87dedd
FIX: Don't raise an error if URL timesout.
2017-08-10 12:58:56 +09:00
Guo Xiang Tan
a849959915
Fix missing parameter.
2017-08-10 11:15:51 +09:00
Guo Xiang Tan
a1f60cfcb8
Fix incorrect test migration.
2017-08-10 00:20:07 +09:00
Guo Xiang Tan
7a4aee4a7e
FIX: updated_at needs to be set in migration as well.
2017-08-09 20:52:13 +09:00
Guo Xiang Tan
90d7dd1f05
FIX: Ensure that post action moderation post uses the site's default locale.
...
https://meta.discourse.org/t/a-post-in-looking-for-someone-to-customize-discourse-to-create-a-forum-site-requires-staff-attention/67468/5?u=tgxworld
2017-08-09 18:20:20 +09:00
Guo Xiang Tan
49c6959dfc
Adjust width for membership request input field.
2017-08-09 16:05:20 +09:00
Guo Xiang Tan
a9613163b5
FEATURE: Force user to enter reason when requesting for group membership.
2017-08-09 15:45:28 +09:00
Guo Xiang Tan
0bc690ed11
FIX: Staged users are still missing primary email.
2017-08-09 12:03:49 +09:00
Guo Xiang Tan
e0d37c1f74
Add debugger Rubocop lint.
2017-08-08 19:16:40 +09:00
Guo Xiang Tan
aab0b06cbe
Rubocop should ignore schema.rb.
2017-08-08 14:29:44 +09:00
Guo Xiang Tan
2c39743d5d
Introduce multisite tests for better coverage.
2017-08-08 12:58:22 +09:00
Guo Xiang Tan
9a0eb2eeb1
Fix the build.
2017-08-08 10:03:04 +09:00
Guo Xiang Tan
1103ea7c4c
Remove Rails 5 deprecation warning.
2017-08-08 00:48:57 +09:00
Guo Xiang Tan
22a1db7b8a
FIX: Make DbProvider#table_exits? work with multisite.
2017-08-07 16:37:42 +09:00
Guo Xiang Tan
c5850422f0
FIX: SiteSettings defaults cache leaking across multisite.
2017-08-07 15:16:57 +09:00
Guo Xiang Tan
f496302c2c
order scope is ignored when using find_each.
2017-08-07 11:46:18 +09:00
Guo Xiang Tan
412fa78b1f
FIX: default_locale cross talk in multisite setup.
2017-08-07 11:14:28 +09:00
Guo Xiang Tan
3f24ed2b3e
Can't revert due to incompatibility of new site setting types.
...
Revert "Revert "FEATURE: Site settings defaults per locale""
This reverts commit 439fe8ba24 .
2017-08-07 10:43:09 +09:00
Guo Xiang Tan
439fe8ba24
Revert "FEATURE: Site settings defaults per locale"
...
This reverts commit 468a8fcd20 .
2017-08-07 10:31:50 +09:00
Guo Xiang Tan
8cc8010564
Maintain backwards compatibility before Jobs::MigrateUploadExtensions runs.
2017-08-03 11:56:55 +09:00