Clang Analyze for Gluster

Deepshika recently worked on getting a clang analyze job for Gluster setup with Jenkins. This job worked on both our laptops, but not on our build machines that run CentOS. It appears that the problem was clang on CentOS…

Deepshika recently worked on getting a clang analyze job for Gluster setup with Jenkins. This job worked on both our laptops, but not on our build machines that run CentOS. It appears that the problem was clang on CentOS is 3.4 vs 4.0 on Fedora 26. It fails because one of our dependencies need -fno-stack-protector, which wasn’t in clang until 3.8 or so. It’s been on my list of things to fix. I realized that the right way would be to get a newer version of clang on Fedora. I could have just compiled clang or build 4.0 packages but I didn’t want to end up having to maintain the package for our specific install. I decided to reduce complexity by doing a compilation inside a Fedora 6 chroot. This sounded like the least likely to add maintenance burden. When I looked for documentation on how to go about this, I couldn’t find much. The mock man page, however, is very well written and that’s all I needed. This is the script I used comments about each step.

#!/bin/bash     # Create a new chroot     sudo mock -r fedora-26-x86_64 --init      # Install the build dependencies     sudo mock -r fedora-26-x86_64 --install langpacks-en glibc-langpack-en automake autoconf libtool flex bison openssl-devel libxml2-devel python-devel libaio-devel libibverbs-devel librdmacm-devel readline-devel lvm2-devel glib2-devel userspace-rcu-devel libcmocka-devel libacl-devel sqlite-devel fuse-devel redhat-rpm-config clang clang-analyzer git      # Copy the Gluster source code inside the chroot at /src     sudo mock -r fedora-26-x86_64 --copyin $WORKSPACE /src      # Execute commands in the chroot to build with clang     sudo mock -r fedora-26-x86_64 --chroot "cd /src && ./autogen.sh"     sudo mock -r fedora-26-x86_64 --chroot "cd /src && ./configure CC=clang --enable-gnfs --enable-debug"     sudo mock -r fedora-26-x86_64 --chroot "cd /src && scan-build -o /src/clangScanBuildReports -v -v --use-cc clang --use-analyzer=/usr/bin/clang make"      # Copy the output back into the working directory     sudo mock -r fedora-26-x86_64 --copyout /src/clangScanBuildReports $WORKSPACE/clangScanBuildReports      # Clean up the chroot     sudo mock -r fedora-26-x86_64 --clean

Crucial Conversations Training

In the first week of July, I attended an internal training on Crucial Conversations. I’ve been eyeing that training ever since I started at Red Hat.

In the first week of July, I attended an internal training on Crucial Conversations. I’ve been eyeing that training ever since I started at Red Hat. It’s a skill that I’m poor at. I tend to avoid difficult conversations. When do I have them, I let emotions get the better of me or go the path that has the least amount of conflict. The training involves hands-on practice with methods and techniques taught in the book. I’d read about half the book before I went into the training, but the training was way more effective.

One of the possible outcomes of a crucial conversation

I learned two important lessons from this training. One, you can get into a conversation and very often it can turn into who’s winning and who’s losing. At this point, it’s very likely you’ve lost track of the original goal of the conversation. The second is to observe when a conversation is escalating due to aggression or silence. De-escalate the conversation first. Otherwise, you’ll have of two things happen. The other person will be angry and the conversation becomes a conflict. Or the person will agree to everything while utterly unhappy about it.

Image Credit: Jule Falk on Flickr (license)

Open Source Summit Tokyo 2017

I spoke at the Linux Foundation’s Open Source Summit in Tokyo, Japan. The event was co-located with the Automotive Linux Summit. This post a report of the event as well as the trip to Japan. We did an updated version of the Linuxcon…

I spoke at the Linux Foundation’s Open Source Summit in Tokyo, Japan. The event was co-located with the Automotive Linux Summit. This post is a (very delayed) report of the event as well as the trip to Japan. Amye and I did an updated version of the Linuxcon Berlin talk to a Tokyo audience. It had some audience, but it’s time we retired this talk.

I managed to wake up early enough to run one morning

Flying to Tokyo was pleasant. Bombay has a direct flight to Narita with ANA. I got one of the emergency row seats, so I didn’t have much of a view. Narita airport had the most efficient immigration and customs I’ve seen. I was out of the airport in 30 mins. I planned it out so I took the Keisei Access Express to Shimbashi and then the Yurikamome line to the hotel. Despite not knowing any Japanese, I could find my way. I was quite exhausted when I got to the hotel and I wasn’t looking forward to the 3 pm check-in. Luckily, the room was already ready. I considered ordering room service, but I went exploring at the mall nearby. The place had English menus and very nice food.

Lovely lunch during one of the conference days

I had no connectivity trouble despite the lack of a local phone connection. Most metro stations and malls have free internet. I was using Telegram, Twitter, and Slack all the time. The Hilton Wi-Fi was pretty strong too.

Dinner for Speakers, Sponsors and Press

I spent the rest of the day catching up on sleep. That night I made the mistake of going to bed with the curtains open. I jumped awake next morning thinking I’d slept in. It turns out that the sunrise in Tokyo is around 0430. So what felt like 0900 to me was actually 0500. It took a while to go back to sleep. I spent the morning finishing up our slides. Then, I went out exploring a bit of Tokyo and stationery shopping at Itoya. I wanted to do more touristy things, but carrying around bags of stationery wasn’t fun. By the time I got back, dropped off the stuff at the hotel, I was too tired to go back out exploring. I roamed around Odaiba instead and went hunting for the conference venue. I’m glad I did because I got lost. I found the venue, picked up my badge and met fellow Red Hatters who were setting up the booth.

One evening, I walked up to the bridge and went half way across it. It has very pretty views

Our talk was on the first day of the conference, which was a good thing. I was stress-free after the first half of the day. I met Arun at the event which was a pleasant surprise. The rest of the conference provided an opportunity for Bex and I talk to about documentation. We’re working on adopting the same documentation tool.

You can't beat this 'demo'

The Automotive Linux Summit had fantastic demos. I felt like the booths for the Open Source Summit aren’t as fantastic.. The ALS folks had displays and car simulators that should show how their displays work. I helped with the booth duty for a couple of shifts, but, again, we didn’t have enough interesting things to demo. While walking around those booths, I had idea for a Gluster demo. If all works out, I plan on putting that up for the next Open Source Summit in Prague.

Out of the talks that I attended, the ones that stood out are:

Image credit: Linux Foundation Speaker Party Lexus Demo (license)

Coffee!

One of the first things I did when I started working from home was to stop having coffee at home. Coffee tends to hit me when I have it and it has me jumping around all night if I have a cup a little too late in the evening.

One of the first things I did when I started working from home was to stop having coffee at home. Coffee tends to hit me when I have it and it has me jumping around all night if I have a cup a little too late in the evening.

After 4 years of barely drinking coffee, I’ve finally given in. I got myself a south indian coffee filter. It takes a few hours to get me a cup of coffee. This is intentional so that I can only have one cup of coffee in the morning. I don’t intend to have more than a cup of coffee every morning. I’m now trying out different types of coffees to see which one I prefer to drink on a daily basis. As I write this, I realize that the coffee I had at 5 pm wasn’t the best idea.

PS: I ended up going to bed at 1 am compared to my normal 10:30 pm or so.

DevConf India 2017

The DevConf CZ conference has been going on for a few years now. India got it’s first edition this year in May. I got looped into helping the conference over the course of the month leading up to the conference. The first thing I did was…

The DevConf CZ conference has been going on for a few years now. India got it’s first edition this year in May. I got looped into helping the conference over the course of the month leading up to the conference. The first thing I did was to buy the domain name and register the Twitter account. I was also going around asking people to submit talks for the CFP. I was also asked to help edit the content for the conference. This made it impossible for me to talk about anything, since we did not want a conflict of interest.

During the talk selection process, we first looked at the talks and their content. In case a talk proposal wasn’t focused on the right audience, we got in touch with the author and asked for an edit. For this event, our target was sysadmins. We made an effort to give a few slots to first-time speakers. This is something I’m committed to doing if I continue to help with the event. In fact, I’d like to do more. For example, speaking workshops and help with designing presentations.

We had several missteps at this stage already. Our CFP announcements was quite late. We could have had a lot more people propose to speak at the event if they had enough notice. Some speakers did not like the process were they had to give the talk to the selection committee. After this event, I’ll admit I’m a big believer in this process. It’s easy to filter out talks that sound good but aren’t great this way. What we did wrong in this process is timing. We did the rehearsals as late as one week before the event. For the next edition, I’d like to move the schedule so talks are final at least 60 to 90 days before the event.

I arrived late night the day before the event because of date conflicts. On day 1, there were only going to be workshops for Devconf, so I didn’t have to do much. The Ansible workshop had high demand but few seats. That ended up being a bit challenging for both the trainers and the attendees. Some people who RSVP’d may not have shown up on time and some people who didn’t RSVP at all showed up. We make a decision to say that the people who were there at 10 mins past the start time could sit at the tables. Everyone else would have to sit in the chairs at the back. They’re welcome to take part but the facilitators won’t be able to help them at their place. If we do this again, I’d either charge for the workshops or commit to a first-come first-serve basis. We inconvenienced a lot of people by our decisions, but we did what we thought would serve the event best. I couldn’t stay awake after the first tea break, so I headed back to the office and then finally back to the hotel for a nap.

The second day, I was much better refreshed and energetic thanks to a good amount of sleep. We had a full track for DevConf and a long list of things that could go wrong. We started off the day being behind time but over the course of the day we were running early. The day ended with Jim’s keynote which was fantastic. We lost a couple of videos due to a human error/problem with the recording infrastructure. All the other videos from the conference are up on YouTube.