Commit Graph

590 Commits

Author SHA1 Message Date
Tim Vaillancourt
f334dbde5e
Merge pull request #810 from yaserazfar/check_unchecked_errors
Adds error checking for an err variable that was left unchecked
2020-08-14 17:03:10 +02:00
Tim Vaillancourt
4bbc8deb77
Fix tabs from merge conflict 2020-08-13 15:50:38 +02:00
Tim Vaillancourt
5b6da5b7f3
Merge branch 'master' into handle_driver_timeout_error 2020-08-13 15:49:34 +02:00
Shlomi Noach
ae4dd1867a extra unit test checks 2020-07-29 15:06:13 +03:00
Shlomi Noach
731df3cd15 comments 2020-07-23 14:04:14 +03:00
Shlomi Noach
c9249f2b71 Updating and using AlterTableOptions 2020-07-23 11:38:05 +03:00
Shlomi Noach
f482356a94
Merge branch 'master' into parse-alter-statement 2020-07-22 12:36:59 +03:00
Shlomi Noach
6c7b4736e1 Support a complete ALTER TABLE statement in --alter 2020-07-22 12:33:02 +03:00
Justin Fudally
b02900ae06
Merge branch 'master' into logging-interface-contrib 2020-07-21 16:01:29 -05:00
Shuode Li
57955b968b
Merge branch 'master' into master 2020-05-06 00:15:57 -07:00
Andrew Mason
90ad7a061f Handle the rest of rows.Err cases 2020-04-21 12:50:23 -04:00
Andrew Mason
61de098072 Add a check to rows.Err after processing all rows
Closes #822.

In https://github.com/go-sql-driver/mysql/issues/1075, @acharis notes
that the way the go-sql driver is written, query timeout errors don't
get set in `rows.Err()` until _after_ a call to `rows.Next()` is made.

Because this kind of error means there will be no rows in the result
set, the `for rows.Next()` will never enter the for loop, so we must
check the value of `rows.Err()` after the loop, and surface the error up
appropriately.
2020-03-31 16:25:16 -04:00
Justin Fudally
2178b5947b remove spammy error 2020-03-30 10:05:23 -05:00
Justin Fudally
5816ede7b3 add error message 2020-03-30 09:55:49 -05:00
Justin Fudally
7893f8e1c3 catch error in collectFunc 2020-03-30 09:53:10 -05:00
Justin Fudally
df60fa4204 add error logging 2020-03-25 16:06:17 -05:00
Justin Fudally
57cf5f3c90 add override to ignore http errors 2020-03-25 15:58:32 -05:00
Justin Fudally
46dabd338b go fmt 2020-03-25 15:48:19 -05:00
Justin Fudally
d31f3aac0c Add CLI flag for ignoring http errors 2020-03-25 15:47:56 -05:00
Justin Fudally
ca0b822a3d Add comment 2020-03-25 15:41:23 -05:00
Justin Fudally
64083e4705 Throttle on no metrics/error 2020-03-25 15:40:09 -05:00
Justin Fudally
0b2702bf53 Throttle on no metrics/error 2020-03-25 14:12:00 -05:00
Shlomi Noach
97f2d71616 fix unit tests 2020-02-16 12:52:26 +02:00
Shlomi Noach
9f5edc923e Support --mysql-timeout flag 2020-02-16 12:48:23 +02:00
Yaser Azfar
2eb141010b adds error checking for an err variable that was left unchecked 2019-12-27 16:54:43 +13:00
Shuode Li
13b5f48ca5 Remove useless code 2019-12-17 04:03:51 +00:00
Shuode Li
ae762694fb Support Azure Database for MySQL. 2019-12-17 03:47:14 +00:00
Shlomi Noach
a36d6bee94
Merge branch 'logging-interface-contrib' into master 2019-12-11 07:03:37 +02:00
Shlomi Noach
d0ce7c014e truncate lag digits 2019-10-23 10:18:56 +03:00
Abeyu M
3ca5f89fa5 add migrationcontext to gomysql_reader 2019-10-08 13:49:15 -04:00
Abeyu M
f4676bf463 implement a logging interface 2019-10-07 11:10:36 -04:00
Shlomi Noach
21e7ec6b7c lag: %+vs notation, e.g. 1s 2019-10-07 07:06:11 +03:00
Shlomi Noach
271c7274a3 refactor progressPct into migrationContext 2019-10-07 06:59:56 +03:00
Shlomi Noach
7869889988 context, status and hooks: progressPct and CurrentLag 2019-10-06 17:08:35 +03:00
Shlomi Noach
3175c2fe74
Merge branch 'master' into ggunson-panic-message 2019-08-13 08:39:43 +03:00
Gillian Gunson
3362c5d322 Changing panic message 2019-08-12 12:40:31 -07:00
Shlomi Noach
b881bff1e8 fixed linter issue 2019-08-11 15:06:03 +03:00
Shlomi Noach
f0ed7aeb0b Always use NO_AUTO_VALUE_ON_ZERO 2019-03-24 11:32:42 +02:00
Shlomi Noach
7ae32f7184
Merge branch 'master' into skip-strict-mode 2019-03-17 23:49:13 -07:00
Shlomi Noach
766040d83f
Merge branch 'master' into named-panic 2019-03-06 12:47:06 +02:00
Shlomi Noach
7ead4c4a56 named throttle, no-throttle 2019-02-25 14:02:57 +02:00
Shlomi Noach
ff17d2f844
Merge branch 'master' into named-panic 2019-02-25 14:00:12 +02:00
Rafe Kettler
b4da7cfbfb Improve SSL support
Related issue: https://github.com/github/gh-ost/issues/521

 - Add --ssl-cert and --ssl-key options to specify SSL public/private
   key files
 - Allow combining --ssl-allow-insecure with other --ssl* flags.
   `mysql.RegisterTLSConfig` allows combining the corresponding
   parameters in the `tls.Config` it receives, so gh-ost should
   allow this. I found being able to pass --ssl-allow-insecure along
   with --ssl-ca, --ssl-cert, and --ssl-key useful in testing.
 - Use the same TLS config everywhere. Since the CLI only supports
   a single set of --ssl* configuration parameters, this should be
   fine -- `mysql.RegisterTLSConfig` documentation indicates the
   TLS config given will not be modified, so it can safely be used
   in many goroutines provided we also do not modify it. The previous
   implementation did not work when the TLS config was duplicated,
   which happens when gh-ost walks up the replication chain trying
   to find the master. This is because, when the config is duplicated,
   we must call `RegisterTLSConfig` again with the new config. This
   config is exactly the same, so it's easiest to side-step the issue
   by registering the TLS config once and using it everywhere.
2019-02-22 10:33:19 -08:00
babinomec
7d5749b84a add --skip-strict-mode option 2019-02-14 15:58:49 +01:00
Shlomi Noach
9da2e21e03
Merge branch 'master' into add-tls-support 2019-02-10 11:27:36 +02:00
Brandon Bodnar
5b0dfb009c Wireup allowing insecure ssl 2019-02-04 16:21:25 -06:00
Matt Belisle
79df0d1c5d Adding --ssl-insecure flag 2019-02-04 14:46:08 -06:00
Brandon Bodnar
5319157789 Expand usage statement to indicate setting applies to multiple hosts 2019-02-01 13:20:17 -06:00
Brandon Bodnar
f67ec15f2b Handle returned error 2019-02-01 13:16:54 -06:00
Brandon Bodnar
c440112d44 Explain default setting for TLS param in DSN 2019-01-31 17:23:19 -06:00
Brandon Bodnar
dc599bb036 Remove unnecessary branching 2019-01-31 17:20:11 -06:00
Brandon Bodnar
4f9367e690 Fix casing for initialism 2019-01-31 17:00:13 -06:00
Brandon Bodnar
23617f287f Add initial support for ssl encryption connections to database servers.
- Adding a command line option for users to enforce tls/ssl connections
  for the applier, inspector, and binlog reader.
- The user can optionally request server certificate verification through
  a command line option to specify the ca cert via a file path.
- Fixes an existing bug appending the timeout option to the singleton
  applier connection.
2019-01-31 15:22:03 -06:00
Shlomi Noach
1671530300
Merge branch 'master' into hints-owner-token 2019-01-28 08:28:58 +02:00
Shlomi Noach
3161cd5823 added: --hooks-hint-owner, --hooks-hint-token 2019-01-24 13:06:20 +02:00
Shlomi Noach
93b88e262a
Auto-merged master into gh-ost/patch-1 on deployment 2019-01-23 08:13:55 +02:00
twotwotwo
afa108f8fa
inspect: remove redundant join conditions
The TABLE_SCHEMA and TABLE_NAME are already guaranteed to have the same value in COLUMNS and UNIQUES because of the WHEREs in each query. Dropping it from the ON clause makes it complete much faster.

On (at least) MySQL 5.6 installs with thousands of tables, this query completes in a few seconds without the additional join conditions, but takes more than a minute with it.
2019-01-22 12:26:55 -08:00
Shlomi Noach
809908cb1d
Merge branch 'master' into ipv6 2019-01-20 09:02:34 +02:00
Shlomi Noach
5f587c3262 Adding --force-named-panic option 2019-01-14 13:27:44 +02:00
Shlomi Noach
d32304520c
Merge branch 'master' into minor_changes 2019-01-14 10:45:27 +02:00
Shlomi Noach
7c17cee010 reverting some changes 2019-01-01 11:47:41 +02:00
Shlomi Noach
0be91ba0f2 trying something... 2019-01-01 11:39:43 +02:00
Shlomi Noach
255314927d Updated go-mysql library, now with fix to decimal. May break datetime 2019-01-01 10:57:46 +02:00
Shlomi Noach
419794e16d
Merge branch 'master' into master 2018-12-25 07:20:47 +02:00
黄恒
29e3d48c36
Merge branch 'master' into master 2018-12-11 13:12:47 +08:00
Eduardo Nunes
5f15f8a539 Remove not needed call by grouping columnLists
There is no need to call `applyColumnTypes` more than once for the same
`databaseName` and `tableName`, it is just move the additional
`columnList` to the first call.
2018-11-01 14:43:57 +01:00
Eduardo Nunes
dfc8aa28f4 Ignore not available columns when applying column types
The given `columnLists` may not contain all columns available in the
given table. This patch prevents the code to fail. Before this patch the
code was panicking whenever it was trying to set a value into a `nil`
object, e.g. `columnList.GetColumn('non-existant').Type = SomeType`.

For some reason the application was not completely failing but as a
side-effect any column after the non-existant column would never get its
Type properly set.
2018-11-01 14:33:11 +01:00
Shlomi Noach
60398e774f
Merge branch 'master' into add-dry-run-env 2018-10-02 14:08:08 +03:00
Shlomi Noach
6284a34823
Merge branch 'master' into ipv6 2018-10-02 08:12:15 +03:00
Shlomi Noach
7bd338faf7 Fix to retry logic in row copy 2018-09-20 10:49:21 +03:00
Jacob Bednarz
09a005d79e
Populate the env with dry run status
Updates the `applyEnvironmentVariables` function to populate whether or
not the current execution context is running as a dry run or not which
can then be used in hooks.
2018-09-18 14:41:26 +10:00
Shlomi Noach
04c0be6137
Merge branch 'master' into ipv6 2018-09-17 09:35:18 +03:00
Shlomi Noach
97c1e72dbe
Merge branch 'master' into minor_changes 2018-09-17 08:58:04 +03:00
Shlomi Noach
695e32d41b
Merge branch 'master' into dev_copyrow_hangs 2018-09-17 08:42:03 +03:00
Shlomi Noach
959d1af211 support ipv6 without port 2018-09-16 11:52:59 +03:00
Shlomi Noach
a7cfaa4d33 added testing 2018-09-16 11:48:15 +03:00
Shlomi Noach
49b80df27b Parsing ipv6 addresses 2018-09-16 11:44:52 +03:00
Shlomi Noach
32f1cf1dbe Support for GCP (Google Cloud Platform) 2018-09-02 09:51:40 +03:00
钟越
ef686a4e7b Support database with underscore 2018-08-31 09:31:58 +08:00
wangfei
c7dff99a19 fix copyRowsFunc hangs bug 2018-07-26 03:02:12 +08:00
MOON_CLJ
14eda7efe0 fix GetReplicationLag not used args 2018-05-23 13:13:25 +08:00
MOON_CLJ
21d455013e minor changes and typo correction 2018-05-23 13:13:25 +08:00
Shlomi Noach
db871b42c4 Support for GENERATED (aka virtual) columns 2018-05-22 12:36:52 +03:00
Shlomi Noach
dfeefed5dc avoid prepared statements for changelog table 2018-05-20 13:46:33 +03:00
Shlomi Noach
46bead0369
Merge branch 'master' into fClose-Fix 2018-05-08 07:53:56 +03:00
Shlomi Noach
24ed4ce5e6
Merge branch 'master' into reject-rename-table 2018-05-07 08:04:47 +03:00
Shlomi Noach
fb00a13871 Rejecting RENAME TO|AS 2018-05-06 11:19:03 +03:00
Cyrill Schumacher
c6a6a533a1 go/base: Do not ignore f.Close error 2018-05-04 08:22:54 +02:00
Atsushi Ishibashi
99fcbc35f3 Fix custom type assignment 2018-05-04 01:45:14 +09:00
Shlomi Noach
160e7a11f5 Enforcing binlog_row_image=FULL 2018-04-24 05:56:03 -07:00
Shlomi Noach
3dc4930ae3
Merge branch 'master' into support-aliyun-rds 2018-04-16 14:17:03 +03:00
zj118228
d3b98d9e74 Refactor the code and remove the global variable of
support-aliyun-rds branch.
2018-03-29 12:20:41 +08:00
Shlomi Noach
b3f599acd8
Merge branch 'master' into support-aliyun-rds 2018-03-27 14:23:51 +03:00
Kurt Kotzur
15e7417fc5
update comment 2018-03-19 12:29:49 -07:00
Kurt Kotzur
117b197b2a
Obey defaultNumRetries in retryOperationWithExponentialBackoff; name max interval flag more generically (#2)
* rename flags, obey defaultNumRetries

* capitalization fixes

* fix flag description typo

* fix sleep algorithm
2018-03-19 12:26:46 -07:00
Kurt Kotzur
628983f78f
🎨 2018-03-16 12:42:38 -07:00
Kurt Kotzur
64f66c4abb
add back nonFatalHint, fix type mismatches 2018-03-16 10:54:37 -07:00
Kurt Kotzur
bd62b19b0b
remove nonFatalHint argument from retryOperation; add retryOperationWithExponentialBackoff and conditionally use it 2018-03-15 17:41:15 -07:00
Kurt Kotzur
3f0443833d
add flags for enabling exponential backoff and maximum backoff interval 2018-03-15 17:40:15 -07:00
Shlomi Noach
710abd5a5b Fixed test 2018-03-12 16:20:46 +02:00