From edc67d9ec3360c20f1804673f91a3ba354b950ae Mon Sep 17 00:00:00 2001 From: muyakongali Date: Fri, 17 Jul 2020 10:39:14 +0800 Subject: [PATCH 1/4] bug/log-file-rotate: fix big file even with rotate-by-size and rotate-back-expire --- os/glog/glog_logger.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/os/glog/glog_logger.go b/os/glog/glog_logger.go index 6178c22d8..c6e3ce0b8 100644 --- a/os/glog/glog_logger.go +++ b/os/glog/glog_logger.go @@ -229,7 +229,6 @@ func (l *Logger) printToFile(now time.Time, buffer *bytes.Buffer) { gmlock.Lock(memoryLockKey) defer gmlock.Unlock(memoryLockKey) file := l.getFilePointer(logFilePath) - defer file.Close() // Rotation file size checks. if l.config.RotateSize > 0 { stat, err := file.Stat() @@ -239,12 +238,13 @@ func (l *Logger) printToFile(now time.Time, buffer *bytes.Buffer) { if stat.Size() > l.config.RotateSize { l.rotateFileBySize(now) file = l.getFilePointer(logFilePath) - defer file.Close() } } if _, err := file.Write(buffer.Bytes()); err != nil { + defer file.Close() panic(err) } + defer file.Close() } // getFilePointer retrieves and returns a file pointer from file pool. From 5be30b36847bd47ec9ce0df7ba351f9444e151b4 Mon Sep 17 00:00:00 2001 From: john Date: Mon, 20 Jul 2020 21:32:28 +0800 Subject: [PATCH 2/4] fix issue in logging file rotation --- os/glog/glog_logger.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/os/glog/glog_logger.go b/os/glog/glog_logger.go index c6e3ce0b8..68a449851 100644 --- a/os/glog/glog_logger.go +++ b/os/glog/glog_logger.go @@ -233,6 +233,7 @@ func (l *Logger) printToFile(now time.Time, buffer *bytes.Buffer) { if l.config.RotateSize > 0 { stat, err := file.Stat() if err != nil { + file.Close() panic(err) } if stat.Size() > l.config.RotateSize { @@ -241,10 +242,10 @@ func (l *Logger) printToFile(now time.Time, buffer *bytes.Buffer) { } } if _, err := file.Write(buffer.Bytes()); err != nil { - defer file.Close() + file.Close() panic(err) } - defer file.Close() + file.Close() } // getFilePointer retrieves and returns a file pointer from file pool. From 48c84bf74aa16ddca180c2e04695c73c5355eee7 Mon Sep 17 00:00:00 2001 From: john Date: Mon, 20 Jul 2020 21:48:44 +0800 Subject: [PATCH 3/4] fix place holder for mssql --- database/gdb/gdb_driver_mssql.go | 4 ++-- database/gdb/gdb_func.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/database/gdb/gdb_driver_mssql.go b/database/gdb/gdb_driver_mssql.go index 520582156..59f12426a 100644 --- a/database/gdb/gdb_driver_mssql.go +++ b/database/gdb/gdb_driver_mssql.go @@ -64,10 +64,10 @@ func (d *DriverMssql) GetChars() (charLeft string, charRight string) { // HandleSqlBeforeCommit deals with the sql string before commits it to underlying sql driver. func (d *DriverMssql) HandleSqlBeforeCommit(link Link, sql string, args []interface{}) (string, []interface{}) { var index int - // Convert place holder char '?' to string "@vx". + // Convert place holder char '?' to string "@px". str, _ := gregex.ReplaceStringFunc("\\?", sql, func(s string) string { index++ - return fmt.Sprintf("@v%d", index) + return fmt.Sprintf("@p%d", index) }) str, _ = gregex.ReplaceString("\"", "", str) return d.parseSql(str), args diff --git a/database/gdb/gdb_func.go b/database/gdb/gdb_func.go index 1b1000c95..699eaae2f 100644 --- a/database/gdb/gdb_func.go +++ b/database/gdb/gdb_func.go @@ -553,7 +553,7 @@ func formatError(err error, sql string, args ...interface{}) error { func FormatSqlWithArgs(sql string, args []interface{}) string { index := -1 newQuery, _ := gregex.ReplaceStringFunc( - `(\?|:v\d+|\$v\d+|@v\d+)`, sql, func(s string) string { + `(\?|:v\d+|\$v\d+|@p\d+)`, sql, func(s string) string { index++ if len(args) > index { if args[index] == nil { From 52b6e8ef9d8d268dbe0bda1648bf602fc60bc210 Mon Sep 17 00:00:00 2001 From: john Date: Mon, 20 Jul 2020 21:55:34 +0800 Subject: [PATCH 4/4] fix place holder for mssql --- database/gdb/gdb_z_mysql_internal_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/gdb/gdb_z_mysql_internal_test.go b/database/gdb/gdb_z_mysql_internal_test.go index 251a61a6d..b010bb3db 100644 --- a/database/gdb/gdb_z_mysql_internal_test.go +++ b/database/gdb/gdb_z_mysql_internal_test.go @@ -75,7 +75,7 @@ func Test_Func_FormatSqlWithArgs(t *testing.T) { // mssql gtest.C(t, func(t *gtest.T) { var s string - s = FormatSqlWithArgs("select * from table where id>=@v1 and sex=@v2", []interface{}{100, 1}) + s = FormatSqlWithArgs("select * from table where id>=@p1 and sex=@p2", []interface{}{100, 1}) t.Assert(s, "select * from table where id>=100 and sex=1") }) // pgsql