#techempower-fwbm

/

      • hamiltont
        markoa: the benchmarker now runs all tests and installations using a dedicated user account
      • so to “stop” things we just kill any processes owned by that user
      • travis does impose VM limits, and the only option I know of is to try and reduce sbt’s memory usage
      • According to this you have 3GB of memory available though: http://docs.travis-ci.com/user/ci-environment/#...
      • so….odd that SBT is *still* failing
      • tnelson has quit
      • So…what’s the hashtag we want to use if tweeting the TFB results?
      • #TFB, or #FrameworkBenchmarks, or #Round10, or #ItsHappening :-P
      • FWBM-bot
        [FrameworkBenchmarks] hamiltont opened pull request #1482: Fix ASP.NET (master...pdonald-aspnet) http://git.io/veIlP
      • pstef
      • markoa
        hamiltont: I'm using java 8 with sbt, so the process should not run out of permgen. I've also increased heap space to a value that's been a safe number in my environment.
      • tnelson joined the channel
      • tnelson has quit
      • tnelson joined the channel
      • i'm been banging my head against the wall with CI test failures in spray-es. I got it to pass once (http://bit.ly/1aqSyYL), but now tests are failing again.
      • it's the sbt build that's failing and the only explanation I can come up with is that some resource limits get exceeded and the process is terminated.
      • any ideas on how to solve this issue?
      • TE-msmith
        all those kernel output lines look... suspect
      • hamiltont
        TE-msmith: kernel output lines from here - https://github.com/TechEmpower/FrameworkBenchma...
      • TE-msmith
        howdy
      • hamiltont
        Still, there’s too many. We should mod that to write to a file then store it inside results
      • yo, morning
      • TE-msmith
        yeah
      • oh god... look at the work you've done
      • gh#1482 has SOOOO many changes
      • [d__d]
      • TE-msmith
        why!?
      • hamiltont
        Hm, I can squash some of the commits, but most of them are real commits
      • TE-msmith
        oh ok
      • nm
      • hamiltont
        it’s everything pdonald did plus the final changes we asked for in the original PR
      • TE-msmith
        sorry, this is covering all the MONO stuff
      • hamiltont
        yup
      • TE-msmith
        and you've only done the `apt-get download` for that
      • good
      • hamiltont
        Yea
      • Just becuase it was a huge PITA to get the proper binary without
      • TE-msmith
        I want, if it's possible, to not even use `apt-get download` because it would make our suite "flavorless" in terms of linux distros
      • I understand that
      • hamiltont
        Their CI setup doesn’t *always* build the binary for our system, but the only way to know is to cycle through curl-ing each folder, which sucks
      • TE-msmith
        lol yeah
      • hamiltont
        In terms of distros - why not just have *deb based and *rpm based like most major linux software vendors?
      • then we could rely (mostly) on the respective pacakge managers, and probably without ever requiring sudo
      • Would really help stuff like “download+compile python”
      • TE-msmith
        That's fine with me
      • I want to move towards something like that
      • and supporting deb first makes sense to me
      • BUT
      • Debian and Ubuntu (the two biggest deb-based distros) have slightly different package names
      • I tested this on Raspbian (same package names as Debian) and couldn't get all the `prerequisites.sh` to complete
      • additionally, java didn't get installed correctly, etc
      • hamiltont
        lame, but I follow
      • TE-msmith
        `apt-get install openjdk-7-jdk` works on Ubuntu, but not Debian
      • which is totally annoying
      • hamiltont
        So let’s support apt-get download for ubuntu for now, and then when we add some features to support different base OS we can add in debain first as it’ll be the easiest transition?
      • TE-msmith
        so, if we're going to do it that way, we need to 1) come up with a solution that cleanly can differentiate between *deb systems and *rpm systems, 2) come up with a way to get `.deb` files without relying on `apt`, and 3) make it completely user-doable
      • yeah
      • sounds good
      • hamiltont
        I can add a big-ass comment warning that it won’t work on all debian in the source code
      • TE-msmith
        but what I want to avoid is something like `if (ubuntu) { apt-get install openjdk-7-jdk } else if (debian) { apt-get install oraclejdk-7 } else if ( gentoo ) { etc }`
      • warnings are good
      • but I think we just need to formalize our process for installation a bit
      • hamiltont
        1) totally agree 2) why bother? Just say we’re using ubuntu package names for now and call it a day, since that’s fast and easy 3) you mean without sudo, right?
      • TE-msmith
        I LOVE what you did with the installs directory
      • hamiltont
        Totally agreed - a huge ass if statement is …. undesirable
      • TE-msmith
        1) yay 2) for now using `apt-get download [package-name]` works, let's do it 3) yes
      • hamiltont
        Cool
      • Thinking towards the future, perhaps something like mono.debian.sh vs mono.ubuntu12.sh, etc. Although TBH I’d rather use something that actualyl does this well, like puppet or chef (haven’t used either so I”m not aware if they meet our use case, but I’d look at them before writing custom code to do this)
      • TE-msmith
        I'll talk to Brittany when she gets in
      • hamiltont
        Sweet
      • Don’t let me take up your morning, we can chat later
      • TE-msmith
        yeah, we should do some investigation to see what's already built
      • I love rebuilding wheels, but if there's already a good solution then it's cheaper than my time
      • no no, today is basically a wash for me
      • I have a half-day to help a friend set up his seder
      • so i'm catching up on emails, helping brian with the round 10 results, and doing r&d (read: tfb)
      • hamiltont: what is the difference between `export FOO=someVal` and simply calling `FOO=someVal` in bash?
      • hamiltont
        if you say FOO=someVal, then you can use $FOO in your current script, but no subcommands will see that FOO variable
      • export means to export for subcommands / subshells
      • TE-msmith
        gotcha
      • so likely the `start.sh` scripts SHOULD use `export FOO=someVal`
      • hamiltont
        yup
      • TE-msmith
        okay
      • hamiltont
        if in doubt export
      • TE-msmith
        okay
      • i'm going to go over LadyMozzarella's "remove bash_profile" branch and audit the files a bit (since there are so many)
      • i'll check back here, but gunna nose-down for a bit
      • hamiltont
        Coolio
      • markoa
      • TE-msmith
        you winning, mark?
      • nice
      • oh hamiltont: I think I'm going to try and tag the final commit number today
      • markoa
        maybe :-) i'll just squash some commits, let's see what happens. fingers crossed :-)
      • TE-msmith
        depends on brian's response
      • hamiltont
        Cool
      • TE-msmith
        I mean, I named the results in TFB-Round-10 as "final", so I think we're in at this point
      • but we have the commit hash, so I was going to play with tagging it as "round-10" on the FrameworkBenchmarks repo
      • thoughts?
      • hamiltont
        Yea, I think that’s a good idea
      • TE-msmith
        yay
      • hamiltont
        If you want to double dip, take a look at gh#1365 where I advocate tagging 4c67f02 as round-9
      • [d__d]
        Retroactively tag rounds 8 and 9: https://github.com/TechEmpower/FrameworkBenchma...
      • Smerdyakov joined the channel
      • hamiltont
        markoa: yay! Sadly that’s the only way I know how to address the sbt failures in travis currently, just play with the memory heavy options until you get lucky...
      • TE-msmith
        ya
      • I'm kind of sad we didn't bring up the memory constraints on the call
      • >_<
      • I think we get 1GB now?
      • hamiltont
        Actually, 3GB is what is claimed
      • TE-msmith
        really?
      • hamiltont
        But I think it’s heavily dependant on the load...
      • TE-msmith
        ... that should be PLENTY of RAM for a dependency manager
      • yeah
      • hamiltont
        Yea, I know
      • Kind of suspicious of that 3gb number...
      • markoa
        just wondering if we could get more verbose output in case of errors. i mean usually when the jvm runs out of memory i get a message indicating what happened.
      • or is the jvm just killed by some other process?
      • hamiltont
        I think the first is an option, if there are options to tell sbt to print those kind of OOM errors we should enable them
      • FWBM-bot
        [FrameworkBenchmarks] hamiltont pushed 2 new commits to master: http://git.io/veqfF
      • FrameworkBenchmarks/master 5af5f37 marko asplund: implement test types 1, 2, 3, 5 and 6 with Scala, Spray + Elasticsearch...
      • FrameworkBenchmarks/master 902e19b Hamilton Turner: Merge pull request #1477 from marko-asplund/spray-es...
      • TE-msmith
        agreed
      • I think twiddling nobs on these package managers is something we should look into
      • steve's been spending a LOT of time trying to get php JUST right
      • markoa
        bugger. now the test is failing again even though all I did was squash two of the latest commits :-(
      • TE-msmith
        "bugger" - you bri'ish?
      • markoa
        no, not really ;-)
      • TE-msmith
        lol k
      • hamiltont
        holy hell yesod’s build process is intense
      • My computer sounds like a train is whoosing by
      • markoa
        the stdout output from install.sh is captured in the log. usually when i ran into memory exhaustion issues i get an error message either in stdout or stderr. but in this case i don't see anything like that in the log.
      • hamiltont
        I shudder to think of building a real application
      • TE-msmith
        ya
      • markoa
        So, does the build process get killed by some other process? that would explain why there's no error message in the log.
      • TE-msmith
        haskell does a LOT of work at compile time
      • LadyMozzarella
        What do you guys think about gh #1439 (aside from waiting for it to pass Travis)?
      • TE-msmith
        markoa: not sure
      • gh#1439
      • [d__d]
        Increase throughput for Grizzly and undertow by parallelizing DB access: https://github.com/TechEmpower/FrameworkBenchma...
      • TE-msmith
        oh, is this the hibernate thing?
      • I'm not a hibernate expert, but if you can confirm that configuration value of 'false' in terms of caching, then I'm okay with it
      • hamiltont
        markoa: FYI, you can use “TFB_VB_MEM=1024 vagrant up” to simulate a low-memory condition using vagrant and see if you get log output
      • markoa: I doublt it’s being killed by an external process on travis, I’d expect your mallocs just start to fail (and most software starts to segfault, but sbt should be fairly resistant to that happening)
      • LadyMozzarella: ^ I’m with TE-msmith on this, if that value does mean no cache then coolio
      • LadyMozzarella
        ok sweet. thanks
      • hamiltont
        My confusion is all the Go pull requests - there seem to be multiple competing thoughts about what they should put into TFB and I’m totally lost on those
      • Been avoiding them