GithubHelp home page GithubHelp logo

lynx's Introduction

Lynx

An extremely high performance HTTP framework.

lynx's People

Contributors

joannis avatar

Stargazers

Nitish Makhija avatar Mike Lu avatar Tim Kersey avatar Prince Dzonga avatar James Graham avatar  avatar Ivan avatar  avatar Zsolt Váradi avatar Thiago Holanda avatar  avatar

Watchers

James Cloos avatar

Forkers

wittedhaddock

lynx's Issues

A name

Yarn isn't going to work

Crash on Telnet Session Cancellation

Building 2a6ed87

  1. run server, 127.0.0.1:8080
  2. telnet 127.0.0.1 8080
telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
  1. end telnet session (CMD-C)
  2. self.readSource.setEventHandler(qos: .userInteractive) { will call once (though occasionally twice) where
    let read = Darwin.recv(self.descriptor, self.incomingBuffer.pointer, Int(UInt16.max), 0)
    resolves to 5
  3. end command line session (CMD-W)
  4. let read = Darwin.recv(self.descriptor, self.incomingBuffer.pointer, Int(UInt16.max), 0) resolves to a small int (have seen 18, 12, or 39)
  5. observe crash

call stack:

#0	0x0000000100cdd5a0 in parsePath #1 () in RequestPlaceholder.parse(_:len:) at /Users/jameswilliamgraham/Lynx/Sources/Lynx/HTTP/HTTPParser.swift:151
#1	0x0000000100cdb4ee in RequestPlaceholder.parse(_:len:) at /Users/jameswilliamgraham/Lynx/Sources/Lynx/HTTP/HTTPParser.swift:189
#2	0x0000000100cdeea2 in closure #1 in HTTPServer.connection(from:) at /Users/jameswilliamgraham/Lynx/Sources/Lynx/HTTP/HTTPServer.swift:47
#3	0x0000000100cdf02e in partial apply for closure #1 in HTTPServer.connection(from:) ()
#4	0x0000000100d0eee6 in closure #1 in ClientHolder.listen() at /Users/jameswilliamgraham/Lynx/Sources/Lynx/Sockets/TCPClient.swift:89
#5	0x0000000100d0ef4c in partial apply for closure #1 in ClientHolder.listen() ()
#6	0x0000000100d0e9f9 in thunk for @callee_owned () -> () ()
#7	0x0000000100d861f1 in _dispatch_block_async_invoke ()
#8	0x0000000100d7078c in _dispatch_client_callout ()
#9	0x0000000100d869fb in _dispatch_continuation_pop ()
#10	0x0000000100d7c64a in _dispatch_source_latch_and_call ()
#11	0x0000000100d735da in _dispatch_source_invoke ()
#12	0x0000000100d86721 in _dispatch_continuation_pop ()
#13	0x0000000100d7ddfc in _dispatch_async_redirect_invoke ()
#14	0x0000000100d72a0c in _dispatch_root_queue_drain ()
#15	0x0000000100d7271d in _dispatch_worker_thread3 ()
#16	0x0000000100de77da in _pthread_wqthread ()
#17	0x0000000100de72b5 in start_wqthread ()

The crash occurs in parsing paths
self.path = Path(path: UnsafeBufferPointer(start: buffer.baseAddress, count: buffer.count &- 1), query: nil)

(lldb) po buffer.count
0

seems like checking the buffer size before making a pointer would solve this, though I'd like to understand more why it's happening

@Joannis

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.