Coder Social home page Coder Social logo

godis's People

Contributors

archeryue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

godis's Issues

关于在AcceptHandler函数里fd的疑问

请问在AcceptHandler这个函数里,server.clients[fd] = clientserver.aeLoop.AddFileEvent(fd, AE_READABLE, ReadQueryFromClient, client)的fd是不是应该是nfd,是不是笔误了呀

func AcceptHandler(loop *AeLoop, fd int, extra interface{}) {
	nfd, err := Accept(fd)
	if err != nil {
		log.Printf("accept err: %v\n", err)
		return
	}
	client := CreateClient(nfd)
	//TODO: check max clients limit
	server.clients[fd] = client
	server.aeLoop.AddFileEvent(fd, AE_READABLE, ReadQueryFromClient, client)
}

godis.go文件下handleBulkBuf函数发现不通过的测试样例

您好!

我发现在godis_test.go文件下,执行query为 “*3\r" 时,程序panic退出,如下:

func TestBulkBuf(t *testing.T) {
	client := NewClient(nil)
	fillQuery(client, "*3\r")
	ok, err := handleBulkBuf(client)
	assert.Nil(t, err)
	assert.Equal(t, false, ok)
}

原因推测为查找CRLF的函数是strings.IndexAny(s,chars string)函数,实际上query不包含 回车换行符 ”\r\n“,但其返回值并非 -1,而是第一次出现字符 ”\r“ 的下标

导致程序误认为识别到了 \r\n,从而把queryLen 减少 2 个长度,结果queryLen被设为 -1,再导致下标越界,panic异常。

list文件下的DelNode()函数发现未通过的测试样例

您好!
我发现当list中只有一个元素时,调用DelNode()方法似乎会导致panic异常,如下:

func TestList(t *testing.T) {
	list := ListCreate(ListType{EqualFunc: GStrEqual})
	assert.Equal(t, list.Length(), 0)

        list.Append(CreateObject(GSTR, "1"))
        list.DelNode(list.First())
}

个人推测原因为当list只有一个元素时,语句n.next.prev = nil 中n.next是nil ,导致空指针异常

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.