Jan 042019
 

When the website enters maintenance mode, there are a few steps to ensure the database is not updated while we dump the data, but still allow the website to display pages. Disable ingress commit processing In the ingress host (for example, x8dtu-ingress01), stop the FreshPorts daemon: [dan@x8dtu-ingress01:~] $ sudo svc -d /var/service/freshports/ [dan@x8dtu-ingress01:~] $ Ensure […]

Jan 042019
 

x8dtu contains two jails for database servers: x8dtu-pg01 and x8dtu-pg02. At any given time, one is the production database server, and contains the IP address 127.1.54.32. Let’s assume x8dtu-pg02 is on PostgreSQL 10.6 and we are upgrading to PostgreSQL 11.1 on x8dtu-pg01 The new packages would be installed on x8dtu-pg01. pg_dump would be run on […]

Jan 042019
 

This procedure is rarely used, but is documented nonetheless. A database server change is usually accomplished by moving the IP address from one server to another, not by adjusting the clients. The production database server is usually at 127.1.54.32. When changing from one database server to another, there are a few configuration files to update: […]

Dec 272018
 

I originally documented this so I would have a reference while tracking down the problem. I have since solved the issue and you can jump to the bottom of this post to find the solution. What I do not know is why this was not an issue under PostgreSQL 10.6 but was under PostgreSQL 11.1. […]

Oct 062018
 

From IRC: [Oct 05 22:41] zi: we have conflict matches: https://dev.freshports.org/security/openssl/ [Oct 06 09:08] dvl: cute. possible to add in a clickable link to take you to that matching port? :) [Oct 06 10:50] zi: That matching port, it’s just a package name, sometimes there is a matching port, sometimes there is not… But yeah, […]

Oct 042018
 

Today I updated the fp-listen and freshports daemons. These are the scripts which invalidate the cache and process incoming commits, respectively. No code changes were made, just the installations directories. Previously, this code when into /var/service but now they go into /usr/local/libexec/freshports-service and I create a symlink from /var/service as as required. This confirms to […]

Sep 262018
 

This post serves two goals: document the CONFLICTS implementation within FreshPorts show how you can use triggers to update a secondary table The FreeBSD ports tree / package collection has a method for resolving conflicts. This feature allows a port maintainer to specify what, if any, packages conflict with a given port. The reasons why […]

Aug 122018
 
Sudden sanity test failures

Today, FreshPorts broke. No commits were being processed. nullfs mounts were disappearing. No idea why. Let’s follow the clues. All times are local to me (Philadelphia). 12:46 pm Rene contacted me on IRC, presumably about a failed sanity test I had seen earlier in the day: You can look at Rene’s commit. Looking back, Rene’s […]

Mar 112018
 

Databases use relational integrity to enforce expected situations. A common scenario is duplicates. Case in point, I present the port_dependencies table: For those not familiar with FreeBSD ports, each port (you could also refer to them as a package or application) can have zero or more dependencies. The FreshPorts database extracts and lists these dependencies […]