Skip to content

Instantly share code, notes, and snippets.

package main
import (
"context"
"testing"
)
type Iface interface {
F(ctx context.Context) error
}
==================
WARNING: DATA RACE
Read at 0x0000028eb742 by goroutine 35:
github.com/pingcap/tidb/plan.tryFastPlan()
/home/jenkins/workspace/tidb_ghpr_unit_test/go/src/github.com/pingcap/tidb/plan/point_get_plan.go:117 +0x3e
github.com/pingcap/tidb/plan.Optimize()
/home/jenkins/workspace/tidb_ghpr_unit_test/go/src/github.com/pingcap/tidb/plan/optimizer.go:62 +0x77
github.com/pingcap/tidb/executor.(*Compiler).Compile()
/home/jenkins/workspace/tidb_ghpr_unit_test/go/src/github.com/pingcap/tidb/executor/compiler.go:48 +0x221
github.com/pingcap/tidb/session.(*session).execute()
@lysu
lysu / juju_to_pkg.bash
Created July 25, 2018 05:55
juju to pkg
find . -name "*.go" | xargs sed -i 's/github.com\/juju\/errors/github.com\/pkg\/errors/g'
find . -name "*.go" | xargs sed -i 's/errors.Trace(/errors.WithStack(/g'
find . -name "*.go" | xargs sed -i 's/errors.ErrorStack(\(.*\))/fmt.Sprintf("%+v", \1)/g'
find . -name "*.go" | xargs sed -i 's/errors.Wrap(\(.*\), \(.*\))/errors.Wrapf(\2, "%+v", \1)/g'
find . -name "*.go" | xargs sed -i 's/errors.Annotate(\(.*\))/errors.Wrap(\1)/g'
find . -name "*.go" | xargs sed -i 's/errors.NotFoundf(\(.*\))/errors.Errorf(\1)/g'
find . -name "*.go" | xargs sed -i 's/errors.BadRequestf(/errors.Errorf(/g'
find . -name "*.go" | xargs sed -i 's/errors.NotSupportedf(/errors.Errorf(/g'
find . -name "*.go" | xargs sed -i 's/errors.Annotatef(/errors.Wrapf(/g'
@lysu
lysu / gist:9a671e50a76da411691989611b15ca2d
Created July 23, 2018 02:17
Compare struct or pointer to interface.
.
func getLocalAddr(machines []string) (string, error) {
for _, m := range machines {
conn, err := net.Dial("udp", m)
if err != nil {
continue
}
defer conn.Close()
return strings.Split(conn.LocalAddr().String(), ":")[0], nil
@lysu
lysu / copy_string.go
Last active July 16, 2018 06:43
cp string
package main_test
import (
"testing"
"fmt"
)
var longStr = "121212123123231231231231311111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111123123"
var shortStr = "1212121231232312312311"
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
@lysu
lysu / delay.sh
Created September 12, 2017 06:12 — forked from digilist/delay.sh
Delaying network traffic to a specific IP
#!/bin/bash
interface=lo
ip=10.0.0.1
delay=100ms
tc qdisc add dev $interface root handle 1: prio
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip flowid 2:1
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay
@lysu
lysu / Main.java
Created August 24, 2017 13:38
test
package test;
import java.io.IOException;
import java.util.Objects;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
@lysu
lysu / latency.markdown
Created November 14, 2016 05:27 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs