public:the_tale_of_httpdirfs
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
public:the_tale_of_httpdirfs [2019/04/30 08:54] – fangfufu | public:the_tale_of_httpdirfs [2019/08/09 12:24] (current) – fangfufu | ||
---|---|---|---|
Line 45: | Line 45: | ||
What is certain is that I am really proud of this project - it feels great that people on the Internet take your toy project seriously, especially when it wasn't meant to be serious at all. Using badly learnt knowledge learnt from undergraduate days in real life brought me great satisfaction. Thank you for teaching me about concurrency, | What is certain is that I am really proud of this project - it feels great that people on the Internet take your toy project seriously, especially when it wasn't meant to be serious at all. Using badly learnt knowledge learnt from undergraduate days in real life brought me great satisfaction. Thank you for teaching me about concurrency, | ||
+ | |||
+ | ===== Email to Professor Alan Burns ===== | ||
+ | Race conditions [[https:// | ||
+ | |||
+ | < | ||
+ | Dear Alan, | ||
+ | I don't know if you remember me. I was the 2nd year undergraduate | ||
+ | course rep back in 2012. I am currently a PhD student in University of | ||
+ | East Anglia. I am working on Computer Vision. | ||
+ | |||
+ | Thank you for teaching me concurrency programming in POPL back then. I | ||
+ | am afraid I didn't do so great in your coursework - I think I scraped a | ||
+ | 40%. | ||
+ | |||
+ | However, the things you taught me has proven to be incredibly useful | ||
+ | and valuable, because my hobby project depends on it. I basically wrote | ||
+ | a filesystem (https:// | ||
+ | popular. Somebody in Canada decided to package my software and upload | ||
+ | it to Debian repository. Debian is one of the largest Linux | ||
+ | distribution. | ||
+ | |||
+ | Without the knowledge I gained from your module, I might not have been | ||
+ | able to figure out what I was facing. During the process of writing the | ||
+ | cache system for my filesystem, I have hunted down numerous race | ||
+ | conditions. It was kind of funny and bizarre when my code ran fine when | ||
+ | I forced it to run with one thread, but it failed mysteriously when I | ||
+ | decided to run it with multiple threads. I needed multithreading for | ||
+ | performance reasons. | ||
+ | |||
+ | I have since identified the critical sections of my code, and guard | ||
+ | them using pthread mutexes. During my own testing, I haven' | ||
+ | deadlocks. Unfortunately, | ||
+ | that sounds like a deadlock. The most annoying thing is that it is not | ||
+ | very reproducible. | ||
+ | |||
+ | I am pretty sure that if I persevere. I will eventually figure | ||
+ | something out. I am doing a PhD afterall. But I just thought my | ||
+ | situation is kind of funny, and you might appreciate the irony of my | ||
+ | story. I have never thought that my hobby project would depend on | ||
+ | knowledge from one of my worst performing module back in my | ||
+ | undergraduate days! | ||
+ | |||
+ | So my question is, us there a way to check for deadlocks by static code | ||
+ | analysis? I am sorry, but I do not remember if there was a way to check | ||
+ | if my solution to the dinining philosopher coursework would cause | ||
+ | deadlock, other than running it. It would be nice if you point me to | ||
+ | some reading materials. | ||
+ | |||
+ | Best wishes, | ||
+ | Fufu | ||
+ | </ | ||
+ | |||
+ | ==== Professor Alan Burn's reply ==== | ||
+ | < | ||
+ | Hi, | ||
+ | Thanks for your ' | ||
+ | |||
+ | Deadlock detection is VERY hard - testing will not identify the subtle situations that can lead to this failure | ||
+ | |||
+ | Two approaches - one use a resource usage protocol that prevents deadlocks (they exists for single processor | ||
+ | systems but are not as common for true parallelism) - two, use model checking on a model of your software | ||
+ | to ' | ||
+ | code that already exists. | ||
+ | |||
+ | Good luck | ||
+ | |||
+ | Alan | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== HTTPDirFS was accepted into Debian repository by the then DPL himself! ===== | ||
+ | Chris Lamb was the Debian Project Leader in March 2019. In his blogpost, he mentioned '' | ||
+ | |||
+ | https:// | ||
+ | |||
+ |
public/the_tale_of_httpdirfs.txt · Last modified: 2019/08/09 12:24 by fangfufu